Trestle - Identity Data Enrichment and Validation APIs Trestle - Identity Data Enrichment and Validation APIs Trestle - Identity Data Enrichment and Validation APIs Trestle - Identity Data Enrichment and Validation APIs
  • Products
        • Enrichment

        • Reverse Phone APIGLOBAL
        • Verify and enrich phone numbers
        • Reverse Address API
        • Verify and enrich address information
        • Caller Identification API
        • Identify and enrich caller information
        • Add-Ons

        • Litigator Check
        • Identify phone numbers associated with serial litigators
        • Email Deliverability
        • Confirm email inboxes accept mail in real-time
        • Spam Check
        • Flag phone numbers tied to high-risk calling activity
        • Email Age Score
        • Score how long an email has existed
        • Validation & Verification

        • Phone Validation APIGLOBAL
        • Validate phone numbers and identify disconnected numbers
        • Real Contact API
        • Verify phone, email, and address information
        • Address Validation API
        • Validate and normalize addresses
        • Assess Risk

        • Decision Console
        • Optimize identity verification for manual review
        • Decision Signals API
        • Automate identity verification for risk decisioning
        • Start using Trestle products today

          Get started for free—no credit card required

          Start Your Free Trial

  • Solutions
        • Industries

        • B2B Contact Data
        • eCommerce
        • Insurance
        • Lead Generation
        • Real Estate
        • Communications
        • Use Cases

        • Verify and Prioritize Leads
        • Outbound Dialing Optimization
        • Assess Risk And Prevent Fraud
        • Inbound Call Routing and Verification​
        • Signup and Onboarding​
        • Optimize AI Voice Agents
        • Start using Trestle products today

          Get started for free—no credit card required

          Start Your Free Trial

  • Pricing
  • Resources
        • API Documentation
        • Blog
        • Knowledge Base
        • Case Studies
        • Glossary
        • Partners and Integrations
  • Company
        • About Us
        • Why Trestle
        • Careers
        • Affiliate Program
        • Contact
  • Log In
  • Start for Free

Trestle Overview

19
  • Does Trestle Offer DNC Checks?
  • Does Trestle Have a Sandbox Environment To Test Integrations?
  • What is Trestle’s Coverage and Accuracy?
  • Which Countries’ Data Do You Have?
  • Does Trestle Normalize Phone Number Format?
  • How Do You Integrate Trestle’s APIs?
  • How Does Trestle’s API Pricing Work?
  • How Often is Trestle’s Data Updated?
  • How to Properly Sample a Test File and Evaluate Trestle
  • Understanding NPA-NXX and the Implications of Number Portability
  • Understanding Trestle’s Free API Trial and the API Access Request Process for Specific Products
  • What are the Response Times for Trestle’s APIs?
  • What are the Various Sources of Trestle’s Identity Data?
  • What are Trestle’s SLAs?
  • What Demographic Data Does Trestle Have?
  • What Is Our Global Phone Validation Coverage?
  • What is the Default and Max QPS Supported?
  • What Queries are Billable?
  • What Security Measures are Taken by Trestle?

Product Features

39
  • Everything to Know About Source ID
  • Everything to Know About IP Trust Scores
  • How to Check When an Email Address Was Made
  • Everything to Know About Spam Checks
  • Using IP Intelligence Checks to Verify Lead Legitimacy in Real Contact API
  • Everything to Know About Phone-to-Address Match
  • Real Contact API 1.1 vs. Real Contact API 2.0: What’s Changed and How to Upgrade
  • Everything to Know About Phone Activity Score
  • Everything to Know About Real Contact API 2.0
  • How Trestle’s Activity Score is Different From HLR Lookups
  • Everything To Know About Name Match Details
  • Everything To Know About Phone-to-Name Confidence Score
  • Everything To Know About Litigator Checks
  • Everything To Know About the Email Age Score Add-on
  • Everything To Know About the Email Deliverability Add-on
  • Explain Real Contact API Grading
  • Fine-Tuning Find Person API Results
  • How Can Trestle’s Email Data Be Used?
  • How Do I Determine Phone Validity?
  • How Do You Read Trestle’s Phone Activity Score?
  • How Does Our Real Contact API Name Matching Work?
  • How Does Trestle Assess Email Validity in Real Contact?
  • How is Trestle’s Phone Activity Score Calculated?
  • How To Read the Real Contact Data Assessment Report
  • International Reverse Phone API Explained
  • Line Type Fidelity and Confidence
  • Trestle API Response Attribute Ranking
  • Trestle Warnings – A Comprehensive Guide
  • Understanding the Difference: Phone Validity vs. Trestle’s Activity Score
  • What are the Different Address Types Returned by Trestle?
  • What Does a Name Match of Null Mean?
  • What Does the Carrier Name Mean?
  • What is the Difference Between CNAM and Trestle’s Smart CNAM API?
  • What is the Difference Between Fixed VoIP and Non-fixed VoIP?
  • What is the Difference Between Reverse Phone API, Caller Identification API, and Smart CNAM API?
  • What is the Link Date Associated with Phones and Addresses?
  • Why and When to Use Trestle’s Name Hint
  • Why Do We Return a Maximum of 100 Entities in Find Person API?
  • Why Does the Address Return as Invalid?

Integrations

22
  • HubSpot | Phone Validation App Integration Guide
  • ZoomInfo | Phone Validation, Real Contact, and Reverse Phone Integration Guide
  • Databar | Phone Validation Integration Guide
  • Make | Real Contact API Integration Guide
  • Make | Phone Validation API Integration Guide
  • Apollo | Phone Validation Integration Guide
  • HighLevel | Phone Validation Integration Guide
  • boberdoo | Real Contact API Integration Guide
  • Clay | Validate Phone Number Integration Guide
  • Clay | Verify Contact Integration Guide
  • HubSpot | Real Contact Phone Grading App Integration Guide
  • How Do I Use a HubSpot List To Grade My Contacts?
  • How Do I Use HubSpot Workflow Triggers To Grade My Contacts?
  • Lead Prosper | Phone Validation Integration Guide
  • Lead Prosper | Real Contact Integration Guide
  • Reverse Phone API Enrichment of Leads in Google Sheets via Zapier
  • Snowflake | Phone Validation Integration Guide
  • What is the Phone Validation Integration within ActiveProspect?
  • What is the Real Contact Integration within ActiveProspect?
  • Validate and Verify Leads with Trestle’s Phone Validation API in Sierra Interactive via Zapier
  • Validate Leads with Trestle’s Phone Validation API in LeadConnector via Zapier
  • Zapier | Grade Leads from a Google Sheet with Real Contact

Troubleshooting

9
  • How to Prevent 429 Errors by Sizing API Concurrency to Your QPS Limit
  • How to Fix 403 Forbidden Errors When Using Trestle’s APIs
  • Why Won’t My Email Work to Signup for Trestle?
  • Ruby Integrations: 403 Forbidden Errors
  • Getting 429: Too Many Requests Error – Why?
  • How to Remove or Deactivate a User in Trestle’s Developer Portal
  • How to Update Phone to Name/Address Linkage Records
  • Reviewing Usage Data
  • Why is the Name Associated with the Phone Incorrect?

Developer Portal

8
  • Business Verification Failed? Here’s What Documents You Need to Submit
  • How to Find and Download Your Receipt or Invoice
  • How to Monitor API Errors With Your Usage Graph
  • Batch Upload FAQ
  • Developer Portal Wallet Frequently Asked Questions
  • Export and Analyze Your Queries in Your Developer Portal Account
  • Getting Started with Trestle’s Developer Portal Wallet
  • Making Changes to Billing Settings for the Developer Portal Wallet

User Guides

9
  • Phone Validation in Java
  • Batch Upload Instructions
  • How Do I add Additional Members to My Trestle Account?
  • How to Handle Special Characters in API Queries
  • Phone Validation API with ASP.NET
  • Phone Validation with JavaScript and HTML: Leveraging Trestle’s API
  • Phone Validation API with PHP: Leveraging Trestle’s API
  • Phone Validation API with Python
  • Phone Validation API with React

Telephony Knowledge

9
  • Choosing the Right Number Lookup API
  • How to Identify Callers In Real-Time Using a Reverse Phone API
  • Why is Line Type Intelligence Important?
  • What is a “No Routes Found” Phone Message?
  • The Best Phone Validation API for Call Centers
  • How to Identify Disconnected Phone Numbers Automatically
  • What is a Phone Number Reputation Lookup?
  • What is a Carrier Number?
  • What is a Non-Fixed VoIP Phone?

Risk Suite Overview

8
  • How to Read Email Breach Reports and IP Abuse Reports in Decision Console
  • Everything to Know About Decision Signals API
  • How to Get Started With Decision Console
  • What is the Decision Overview and How Do I Read It?
  • What is an Attribute Card and How Do I Read It?
  • What is Link Builder and How Do I Use It?
  • Understanding Team and Account Management
  • FAQ and Troubleshooting: Decision Console
  • Home
  • Knowledge Base
  • User Guides
  • Phone Validation API with ASP.NET
View Categories

Phone Validation API with ASP.NET

5 min read

Ensuring the accuracy and validity of user-submitted phone numbers is crucial for maintaining data quality and improving user experience. ASP.NET, with its robust framework and C# language capabilities, provides an excellent foundation for implementing phone number validation. However, to truly enhance the validation process and gain deeper insights into phone numbers, integrating with Trestle’s Phone Validation API can significantly elevate your application’s capabilities.

In this guide, we’ll explore how to implement phone number validation using ASP.NET, and then show how to enhance it with Trestle’s Phone Validation API.

Part 1: Basic Phone Validation with ASP.NET #

ASP.NET allows us to perform server-side validation of phone numbers. Here’s a basic example of how you might implement phone number validation using C# and a simple regex pattern:

using System;
using System.Text.RegularExpressions;

public class PhoneValidator
{
    // Validates phone numbers using a basic regex pattern
    public static bool ValidatePhoneNumber(string phoneNumber)
    {
        string phoneRegex = @"^\+?[1-9]\d{1,14}$";
        return Regex.IsMatch(phoneNumber, phoneRegex);
    }
}

// Example usage in a controller
public class HomeController : Controller
{
    [HttpPost]
    public IActionResult ValidatePhone(string phoneNumber)
    {
        // Check if the phone number format is valid
        if (PhoneValidator.ValidatePhoneNumber(phoneNumber))
        {
            Console.WriteLine("Valid phone number format received.");
            return Json(new { isValid = true, message = "Valid phone number" });
        }
        else
        {
            Console.WriteLine("Invalid phone number format received.");
            return Json(new { isValid = false, message = "Invalid phone number" });
        }
    }
}

This basic implementation checks if the input matches a basic phone number format. However, this approach has limitations:

  1. It only checks the format, not whether the number is actually in service.
  2. It doesn’t provide any additional information about the phone number.
  3. It may not catch all valid or invalid formats.

Part 2: Enhancing Validation with Trestle’s API #

To overcome these limitations and provide a more robust validation solution, you can integrate Trestle’s Phone Validation API. This API not only validates the phone number format but also provides valuable additional information.

Here’s how you can enhance your ASP.NET application to use Trestle’s API:

using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Microsoft.Extensions.Configuration;

public class TrestlePhoneValidator
{
    private readonly HttpClient _httpClient;
    private readonly string _apiKey;

    public TrestlePhoneValidator(IConfiguration configuration)
    {
        _httpClient = new HttpClient();
        _apiKey = configuration["TrestleApiKey"];
    }

    public async Task<JObject> ValidatePhoneWithTrestle(string phoneNumber)
    {
        // Encode the phone number for safe transmission in the URL
        string encodedPhoneNumber = Uri.EscapeDataString(phoneNumber);
        string url = $"https://api.trestleiq.com/3.0/phone_intel?phone={encodedPhoneNumber}";

        // Set API request headers
        _httpClient.DefaultRequestHeaders.Clear();
        _httpClient.DefaultRequestHeaders.Add("x-api-key", _apiKey);
        _httpClient.DefaultRequestHeaders.Add("Accept", "application/json");

        try
        {
            Console.WriteLine($"Sending API request to: {url}");
            HttpResponseMessage response = await _httpClient.GetAsync(url);

            if (response.IsSuccessStatusCode)
            {
                string jsonResult = await response.Content.ReadAsStringAsync();
                JObject result = JObject.Parse(jsonResult);

                // Validate and enhance the API response
                if (result.ContainsKey("is_valid"))
                {
                    Console.WriteLine("API response indicates a valid phone number.");
                }
                else
                {
                    Console.WriteLine("API response missing 'is_valid' key.");
                }
                return result;
            }
            else
            {
                Console.WriteLine($"API request failed with status code: {response.StatusCode}");
                throw new HttpRequestException($"API request failed: {response.StatusCode}");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error during API request: {ex.Message}");
            throw;
        }
    }
}

// Example usage in a controller
public class HomeController : Controller
{
    private readonly TrestlePhoneValidator _phoneValidator;

    public HomeController(TrestlePhoneValidator phoneValidator)
    {
        _phoneValidator = phoneValidator;
    }

    [HttpPost]
    public async Task<IActionResult> ValidatePhone(string phoneNumber)
    {
        try
        {
            // Validate the phone number using Trestle's API
            var result = await _phoneValidator.ValidatePhoneWithTrestle(phoneNumber);

            // Perform additional validation on the API response
            bool isValid = result["is_valid"]?.ToObject<bool>() ?? false;
            if (isValid)
            {
                Console.WriteLine("Phone number is valid according to Trestle API.");
                return Json(new { isValid = true, data = result });
            }
            else
            {
                Console.WriteLine("Phone number is invalid according to Trestle API.");
                return Json(new { isValid = false, message = "Phone number validation failed." });
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error validating phone number: {ex.Message}");
            return BadRequest(new { error = ex.Message });
        }
    }
}

The Power of ASP.NET + Trestle’s API for Phone Validation #

By integrating Trestle’s API with our ASP.NET application, you can significantly enhance your phone validation capabilities:

  1. Comprehensive Validation: Beyond just format checking, you can now verify if the number is assigned to a carrier.
  2. Activity Score: Trestle’s API provides an activity score, indicating the likelihood that the number is currently in use.
  3. Line Type Information: We can determine whether the number is a landline, mobile, VoIP, etc.
  4. Carrier Details: The API provides information about the carrier associated with the number.

This enhanced validation process provides several benefits:

  • Improved Data Quality: By validating not just the format but also the status of the phone number, you can ensure higher quality data in your system.
  • Better User Experience: You can provide more detailed feedback to users about their input.
  • Informed Decision Making: The additional data (like line type and carrier) can inform your business processes and communication strategies.
  • Fraud Prevention: Identifying prepaid numbers or numbers with low activity scores can help in fraud detection efforts.

Best Practices for Implementation #

When implementing this enhanced validation in your ASP.NET applications, consider the following best practices:

  1. Dependency Injection: Use ASP.NET Core’s built-in dependency injection container to manage the TrestlePhoneValidator service.
public void ConfigureServices(IServiceCollection services)
{
    // Register HttpClient and TrestlePhoneValidator for dependency injection
    services.AddHttpClient<TrestlePhoneValidator>();
    services.AddSingleton<TrestlePhoneValidator>();
}

2. Error Handling and Logging: Implement robust error handling and logging to manage API errors gracefully and provide meaningful feedback to users.

public class HomeController : Controller
{
    private readonly TrestlePhoneValidator _phoneValidator;
    private readonly ILogger<HomeController> _logger;

    public HomeController(TrestlePhoneValidator phoneValidator, ILogger<HomeController> logger)
    {
        _phoneValidator = phoneValidator;
        _logger = logger;
    }

    [HttpPost]
    public async Task<IActionResult> ValidatePhone(string phoneNumber)
    {
        try
        {
            // Validate phone number with API
            var result = await _phoneValidator.ValidatePhoneWithTrestle(phoneNumber);

            // Additional validation
            bool isValid = result["is_valid"]?.ToObject<bool>() ?? false;
            return Json(new { isValid, data = result });
        }
        catch (HttpRequestException ex)
        {
            _logger.LogError(ex, "Error calling Trestle API");
            return StatusCode(500, "Error communicating with the validation service.");
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Unexpected error during phone validation");
            return BadRequest("An unexpected error occurred.");
        }
    }
}

3. Secure Configuration Management: Use ASP.NET Core’s configuration system to securely manage your Trestle API key.

Json
{
  "TrestleApiKey": "your_api_key_here"
}


// In Startup.cs
public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }
}

// In TrestlePhoneValidator.cs
public TrestlePhoneValidator(IConfiguration configuration)
{
    _httpClient = new HttpClient();
    _apiKey = configuration["TrestleApiKey"];
}

By implementing these best practices, you can create a more efficient, secure, and robust phone validation process in your ASP.NET applications while maximizing the benefits of Trestle’s API.

Conclusion #

By combining ASP.NET’s powerful web framework capabilities with Trestle’s comprehensive Phone Validation API, you can create a robust, efficient phone validation system. This approach not only ensures the accuracy of phone numbers but also provides valuable insights that can inform your business processes.

Whether you’re building a contact form, a user registration system, or managing a large customer database, this enhanced validation process can significantly improve the quality of your phone number data.

Ready to take your phone number validation to the next level? Sign up for a free Trestle account and start leveraging Phone Validation API with ASP.NET today.

If you have any questions or need assistance with integration, feel free to contact us.

This user guide was written by Tyler Woodward, Technical Account Manager at Trestle.

Updated on December 17, 2024
How to Handle Special Characters in API QueriesPhone Validation with JavaScript and HTML: Leveraging Trestle’s API
Table of Contents
  • Part 1: Basic Phone Validation with ASP.NET
  • Part 2: Enhancing Validation with Trestle's API
  • The Power of ASP.NET + Trestle's API for Phone Validation
  • Best Practices for Implementation
  • Conclusion
trestleLogo

Verified Identities. Trusted Interactions.

U.S. coverage for enrichment and verification.

Global coverage for phone validation and reverse phone.

Based in Bellevue, WA

Linkedin Github Postman

Company

  • About Us
  • Why Trestle
  • Careers
  • Affiliate Program
  • Contact

Products

  • Reverse Phone API
  • Reverse Address API
  • Caller Identification API
  • Phone Validation API
  • Real Contact API
  • Address Validation API
  • Batch Upload
  • Litigator Check Add-on
  • Free Lead Assessment

Use Cases

  • Outbound Dialing Optimization
  • Inbound Call Routing and Verification
  • Signup and Onboarding
  • Lead Verification
  • Optimize AI Voice Agents

Resources

  • Blog
  • Knowledge Base
  • Case Studies
  • Glossary
  • Data Dictionary
  • Changelog
  • Partners and Integrations

Developers

  • Developer Portal
  • API Documentation
  • API Live Status

Legal

  • Terms of Service
  • Privacy Policy
  • Data Processing Agreement
  • Service Level Agreement
  • Do Not Sell My Personal Information
Trestle - Identity Data Enrichment and Validation APIs
  • Products
        • Enrichment

        • Reverse Phone APIGLOBAL
        • Verify and enrich phone numbers
        • Reverse Address API
        • Verify and enrich address information
        • Caller Identification API
        • Identify and enrich caller information
        • Add-Ons

        • Litigator Check
        • Identify phone numbers associated with serial litigators
        • Email Deliverability
        • Confirm email inboxes accept mail in real-time
        • Spam Check
        • Flag phone numbers tied to high-risk calling activity
        • Email Age Score
        • Score how long an email has existed
        • Validation & Verification

        • Phone Validation APIGLOBAL
        • Validate phone numbers and identify disconnected numbers
        • Real Contact API
        • Verify phone, email, and address information
        • Address Validation API
        • Validate and normalize addresses
        • Assess Risk

        • Decision Console
        • Optimize identity verification for manual review
        • Decision Signals API
        • Automate identity verification for risk decisioning
        • Start using Trestle products today

          Get started for free—no credit card required

          Start Your Free Trial

  • Solutions
        • Industries

        • B2B Contact Data
        • eCommerce
        • Insurance
        • Lead Generation
        • Real Estate
        • Communications
        • Use Cases

        • Verify and Prioritize Leads
        • Outbound Dialing Optimization
        • Assess Risk And Prevent Fraud
        • Inbound Call Routing and Verification​
        • Signup and Onboarding​
        • Optimize AI Voice Agents
        • Start using Trestle products today

          Get started for free—no credit card required

          Start Your Free Trial

  • Pricing
  • Resources
        • API Documentation
        • Blog
        • Knowledge Base
        • Case Studies
        • Glossary
        • Partners and Integrations
  • Company
        • About Us
        • Why Trestle
        • Careers
        • Affiliate Program
        • Contact
  • Log In
  • Start for Free