Messaging Provider Lookup API

Fast and accurate messaging provider lookup API. Get SMS/MMS provider information for phone numbers with carrier details and messaging capabilities.

Carrier Identification

The Messaging Provider API provides comprehensive messaging provider information for phone numbers. Perfect for SMS/MMS applications, marketing platforms, and communication services that need to understand messaging capabilities and routing.

A2P/P2P Messaging Compliance

Ensure compliance with A2P (Application-to-Person) and P2P (Person-to-Person) messaging regulations by identifying carrier requirements and messaging capabilities.

Key Features

  • Provider Identification: Get accurate messaging provider information
  • Messaging Capabilities: Determine SMS/MMS support
  • Carrier Details: Access carrier and network information
  • Country Support: International number support
  • Real-time Data: Up-to-date provider information
  • High Availability: 99.9% uptime guarantee

Authentication

All API requests require authentication using your API key. Include your API key in the request headers:

Authorization: Bearer YOUR_API_KEY

Don't have an API key? Get your API key here.

API Methods

REST Endpoint

POST https://api-service.verirouteintel.io/api/v1/messaging

Request Body

{
  "phone_number": "19494600638"
}

Response

{
  "data": {
    "number": "19494600638",
    "provider": "Verizon Wireless",
    "enabled": true,
    "country": "US",
    "country_code": "1",
    "reference_id": "MSG-abc123"
  },
  "errors": []
}

GraphQL Endpoint

POST
https://api-service.verirouteintel.io/graphql
Query
query LookupMessagingProvider($number: String!) {
  lookupMessagingProvider(phoneNumber: $number) {
    number
    provider
    enabled
    country
    country_code
    reference_id
  }
}
Variables
{
  "number": "19494600638"
}

Response

{
  "data": {
    "lookupMessagingProvider": {
      "number": "19494600638",
      "provider": "Verizon Wireless",
      "enabled": true,
      "country": "US",
      "country_code": "1",
      "reference_id": "MSG-abc123"
    }
  }
}

Parameters

Parameter Type Required Description
phone_number / phoneNumber string Yes The phone number to lookup (10-digit US number or international format)

Response Format

Success Response

{
  "data": {
    "number": "19494600638",
    "provider": "Verizon Wireless",
    "enabled": true,
    "country": "US",
    "country_code": "1",
    "reference_id": "MSG-abc123"
  },
  "errors": []
}

Response Fields

  • number - The queried phone number
  • provider - The messaging service provider name
  • enabled - Whether messaging is enabled for this number
  • country - Country code (ISO 3166-1 alpha-2)
  • country_code - International dialing code
  • reference_id - Unique reference for this lookup

Sample API Requests

cURL - REST API

curl -X POST https://api-service.verirouteintel.io/api/v1/messaging \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone_number": "19494600638"}'

cURL - GraphQL

curl -X POST https://api-service.verirouteintel.io/graphql \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query LookupMessaging($phoneNumber: String!) { lookupMessaging(phoneNumber: $phoneNumber) { provider enabled country country_code reference_id } }",
    "variables": {"phoneNumber": "19494600638"}
  }'

Python - REST API

import requests

url = "https://api-service.verirouteintel.io/api/v1/messaging"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "phone_number": "19494600638"
}

response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)

Python - GraphQL

import requests

url = "https://api-service.verirouteintel.io/graphql"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
query = """
query LookupMessaging($phoneNumber: String!) {
  lookupMessaging(phoneNumber: $phoneNumber) {
    provider
    enabled
    country
    country_code
    reference_id
  }
}
"""
variables = {"phoneNumber": "19494600638"}

response = requests.post(url, headers=headers, json={
    "query": query,
    "variables": variables
})
result = response.json()
print(result)

JavaScript/Node.js - REST API

const axios = require('axios');

const url = 'https://api-service.verirouteintel.io/v1/messaging';
const headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
};
const data = {
    phone_number: '19494600638'
};

axios.post(url, data, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('Error:', error.response.data);
    });

JavaScript/Node.js - GraphQL

const axios = require('axios');

const url = 'https://api-service.verirouteintel.io/graphql';
const headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
};
const query = `
    query LookupMessagingProvider($number: String!) {
        lookupMessagingProvider(phoneNumber: $number) {
            number
            provider
            enabled
            country
            country_code
            reference_id
        }
    }
`;
const variables = { number: '19494600638' };

axios.post(url, { query, variables }, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('Error:', error.response.data);
    });

Error Handling

The API returns standard HTTP status codes and detailed error messages:

Common Error Responses

{
  "data": {
    "number": "",
    "provider": null,
    "enabled": false,
    "country": null,
    "country_code": null,
    "reference_id": null
  },
  "errors": ["Invalid phone number format"]
}

HTTP Status Codes

  • 200 - Success
  • 400 - Bad Request (invalid parameters)
  • 401 - Unauthorized (invalid API key)
  • 429 - Too Many Requests (rate limit exceeded)
  • 500 - Internal Server Error

Rate Limits

API requests are limited to:

  • POST requests: 500 per hour; 20 per minute
  • GET requests: 100 per minute
  • Rate limits are per API key
  • Upgrade your plan for higher limits

Rate limit headers are included in all responses:

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 499
X-RateLimit-Reset: 1640995200

Pricing

Our Messaging Provider Lookup API uses a simple pay-as-you-go pricing model:

  • Always Free Tier: 10 free LRN/Enhanced LRN lookups per month
  • Pay-per-use: Competitive per-lookup pricing after wallet funding
  • No subscriptions: No recurring charges or auto-refill
  • Enterprise: Custom pricing for high-volume usage

View detailed pricing →

Benefits

SMS Marketing Platforms

Verify messaging capabilities before sending SMS campaigns to ensure deliverability and optimize routing.

Customer Communication

Determine the best messaging provider for customer support and notification systems.

Fraud Prevention

Validate messaging provider information as part of identity verification processes.

Telecom Applications

Route messages efficiently by understanding carrier networks and messaging capabilities.

Pricing

Our Messaging Provider Lookup API offers competitive pricing for all usage levels:

  • Free Plan: 10 lookups per month
  • Starter Plan: $0.005 per lookup for up to 10,000 requests
  • Professional Plan: Volume discounts available
  • Enterprise Plan: Custom pricing for high-volume usage

View detailed pricing →

FAQs

What messaging providers are supported?

We support all major U.S. carriers including Verizon, AT&T, T-Mobile, and hundreds of regional providers.

How current is the messaging provider data?

Our database is updated in real-time to ensure accurate provider identification and messaging capabilities.

Can I use this for international numbers?

Yes, our API supports international phone numbers with comprehensive global carrier coverage.