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

38
  • 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 PHP: Leveraging Trestle’s API
View Categories

Phone Validation API with PHP: Leveraging Trestle’s API

10 min read

PHP can validate phone numbers two ways. A regex check with preg_match() confirms the format, but not whether the number is real. To validate activity and carrier assignment, use Trestle’s Phone Validation API. 

Ensuring the accuracy and validity of user-submitted phone numbers is crucial for maintaining data quality and improving user experience. PHP, being a versatile server-side scripting language, provides a solid foundation for implementing phone number validation. However, to 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 PHP, and then show how to enhance it with Trestle’s Phone Validation API.

Part 1: Basic Phone Validation with PHP #

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

<?php
function validatePhoneNumber($phoneNumber) {
    // Basic regex for phone number validation
    $phoneRegex = '/^\+?[1-9]\d{1,14}$/';
    return preg_match($phoneRegex, $phoneNumber) === 1;
}

// Example usage
$phoneNumber = '+12345678901';
if (validatePhoneNumber($phoneNumber)) {
    echo "Valid phone number";
} else {
    echo "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, we can integrate Phone Validation API. This API not only validates the phone number format but also provides valuable additional information. You can view the full request and response schema in the API Documentation.

Here’s how we can enhance our PHP script to use Trestle’s API:

<?php
function validatePhoneWithTrestle($phoneNumber, $apiKey) {
    // Build the API URL with the phone number parameter, ensuring it is URL-encoded
    $url = "https://api.trestleiq.com/3.0/phone_intel?phone=" . urlencode($phoneNumber);
    
    // Initialize a cURL session
    $curl = curl_init($url);
    
    // Set cURL options
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Return the response as a string
    curl_setopt($curl, CURLOPT_HTTPHEADER, [         // Set headers for the API request
        "x-api-key: $apiKey",                        // API key for authentication
        "Accept: application/json"                  // Expect a JSON response
    ]);


    // Execute the cURL request and capture the response
    $response = curl_exec($curl);


    // Check for cURL errors
    $err = curl_error($curl);


    // Close the cURL session
    curl_close($curl);


    // Handle errors if any occurred during the cURL request
    if ($err) {
        return "cURL Error #: " . $err;
    } else {
        // Decode the JSON response into an associative array
        return json_decode($response, true);
    }
}


// Example usage


// API key for accessing Trestle's Phone Validation API
$apiKey = 'your_api_key_here';


// Phone number to validate
$phoneNumber = '+12345678901';


// Call the validation function and store the result
$result = validatePhoneWithTrestle($phoneNumber, $apiKey);


// Check if the result contains a valid response
if (isset($result['is_valid'])) {
    // Output the validation details
    echo "Is Valid: " . ($result['is_valid'] ? 'Yes' : 'No') . "\n";
    echo "Activity Score: " . $result['activity_score'] . "\n";
    echo "Line Type: " . $result['line_type'] . "\n";
    echo "Carrier: " . $result['carrier'] . "\n";
} else {
    // Handle errors during validation
    echo "Error: Unable to validate phone number";
}
?>

The Power of PHP + Trestle’s API for Phone Validation #

By integrating Trestle’s API with our PHP script, you can significantly enhance your phone validation capabilities:

  1. Comprehensive Validation: Beyond just format checking, we now verify if the number is actually assigned to a carrier.
  2. Phone Activity Score: Phone Validation API provides a Phone 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, fixed or non-fixed 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 the format and 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 numbers with low activity scores can help in fraud detection efforts.

Best Practices for Implementation #

When implementing this enhanced validation in your PHP applications, consider the following best practices:

  1. Error Handling: Implement robust error handling to manage API errors gracefully and provide meaningful feedback to users.
<?php
function validatePhoneWithTrestle($phoneNumber, $apiKey) {
    $url = "https://api.trestleiq.com/3.0/phone_intel?phone=" . urlencode($phoneNumber);


    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        "x-api-key: $apiKey",
        "Accept: application/json"
    ]);


    $response = curl_exec($curl);
    $err = curl_error($curl);


    curl_close($curl);


    // Throw an exception if a cURL error occurs
    if ($err) {
        throw new Exception("cURL Error #: " . $err);
    }


    // Decode the JSON response and check for errors
    $result = json_decode($response, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new Exception("JSON decoding error: " . json_last_error_msg());
    }


    return $result;
}


// Example usage with exception handling
try {
    $result = validatePhoneWithTrestle($phoneNumber, $apiKey);
    // Process the API result
} catch (Exception $e) {
    // Handle and display errors
    echo "Error: " . $e->getMessage();
}
?>

2. Rate Limiting: Implement rate limiting to ensure you don’t exceed Trestle’s API usage limits.

<?php
/**
 * A rate limiter to control the number of API requests per second.
 */
class RateLimiter {
    private $lastRequestTime = 0; // Timestamp of the last API request
    private $requestsPerSecond;  // Allowed number of requests per second


    public function __construct($requestsPerSecond = 5) {
        $this->requestsPerSecond = $requestsPerSecond;
    }


    /**
     * Waits if the next request violates the rate limit.
     */
    public function wait() {
        $currentTime = microtime(true);
        $timeToWait = (1 / $this->requestsPerSecond) - ($currentTime - $this->lastRequestTime);
        
        if ($timeToWait > 0) {
            usleep($timeToWait * 1000000); // Convert seconds to microseconds
        }
        
        $this->lastRequestTime = microtime(true);
    }
}


// Usage example with rate limiting


$rateLimiter = new RateLimiter(5); // 5 requests per second


foreach ($phoneNumbers as $phoneNumber) {
    $rateLimiter->wait(); // Ensure compliance with the rate limit
    $result = validatePhoneWithTrestle($phoneNumber, $apiKey);
    // Process the result here
}
?>

3. Secure API Key Management: Use environment variables or a secure configuration file to manage your API key.

<?php
// Securely retrieve the Trestle API key from environment variables
$apiKey = getenv('TRESTLE_API_KEY');


// Check if the API key is not set
if (!$apiKey) {
    throw new Exception("Trestle API key not found in environment variables");
}


// Validate the phone number with the retrieved API key
$result = validatePhoneWithTrestle($phoneNumber, $apiKey);
?>

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

Conclusion #

By combining PHP’s server-side capabilities with Trestle’s comprehensive Phone Validation API, you can create a robust, efficient phone validation system. This approach ensures the accuracy of phone numbers and 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 PHP 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.

Frequently Asked Questions #

What’s the difference between a valid phone number and an active one?

Format validation confirms a number is shaped correctly, but gives no indication as to whether anyone will actually pick up. Trestle’s is_valid field confirms the number is real and assigned, while our Phone Activity Score estimates how likely it is to be in use right now. A number can be valid but inactive. 

How do I check a phone number’s format in PHP?

Use preg_match() with an E.164 pattern such as /^\+?[1-9]\d{1,14}$/. That confirms the number is shaped like a valid international number before you send it anywhere. Part 1 above has a working function.

What data does Trestle’s Phone Validation API return?

Each response includes whether the number is valid (is_valid), an activity_score from 0 to 100, the line_type (such as mobile, landline, or fixed or non-fixed VoIP), the carrier, and whether the line is prepaid. You can use these fields to score, route, or block a submission.

Updated on July 14, 2026
Phone Validation with JavaScript and HTML: Leveraging Trestle’s APIPhone Validation API with Python
Table of Contents
  • Part 1: Basic Phone Validation with PHP
  • Part 2: Enhancing Validation with Trestle's API
  • The Power of PHP + Trestle's API for Phone Validation
  • Best Practices for Implementation
  • Conclusion
  • Frequently Asked Questions
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