Trust & Reputation API – U.S. Phone Number Compliance

Get phone number reputation and trust information with real-time spam detection

Choose Your Version

v1 - Boolean Flags

/api/v1/trust

Returns is_spam, is_robocall, is_scam booleans

v2 - Reputation Scoring

RECOMMENDED
/api/v2/trust

Adds reputation_score (0-100) and trust_level

Jump to v2 docs →

Spam & Fraud Detection

The Brand Reputation API provides comprehensive trust and reputation information for phone numbers. It identifies spam, robocalls, and scam numbers using our master spam database as the source of truth.

Migration Notice: This API replaces the deprecated /lookup endpoint. Use /trust for reputation checks, /cnam for caller names, /lrn for routing numbers, and /messaging for carrier information.

Reputation Scoring

Our advanced reputation scoring system analyzes multiple data sources to provide accurate trust assessments:

  • FTC Complaint Database: Real-time access to federal complaint records
  • Carrier Reports: Direct feeds from major telecommunications providers
  • Consumer Reports: Crowdsourced spam and scam reports
  • Machine Learning: AI-powered pattern recognition for emerging threats

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/trust
GET https://api-service.verirouteintel.io/api/v1/trust?phone_number=19494600638

Request Body (POST)

{
  "phone_number": "19494600638"
}

Response

{
  "data": {
    "number": "19494600638",
    "is_spam": true,
    "is_robocall": true,
    "is_scam": false,
    "spam_type": "ROBOCALL",
    "complaint_count": 2,
    "subjects": ["Warranties"],
    "first_reported": "2022-06-27T12:33:40Z",
    "last_reported": "2025-07-04T18:02:13Z",
    "details": "FTC DNC complaints: 2"
  },
  "errors": []
}
Spam Type Priority: When multiple flags are true, spam_type reflects the most specific: ROBOCALL > SCAM > SPAM.

GraphQL Endpoint

POST
https://api-service.verirouteintel.io/graphql
Query
query LookupTrust($phoneNumber: String!) {
  lookupTrust(phoneNumber: $phoneNumber) {
    number
    isSpam
    isRobocall
    isScam
    spamType
    complaintCount
    subjects
    firstReported
    lastReported
    details
  }
}
Variables
{
  "phoneNumber": "19494600638"
}

Response

{
  "data": {
    "lookupTrust": {
      "number": "19494600638",
      "isSpam": true,
      "isRobocall": true,
      "isScam": false,
      "spamType": "ROBOCALL",
      "complaintCount": 2,
      "subjects": ["Warranties"],
      "firstReported": "2022-06-27T12:33:40Z",
      "lastReported": "2025-07-04T18:02:13Z",
      "details": "FTC DNC complaints: 2"
    }
  }
}

API v2 - Enhanced Reputation Scoring

The Trust API v2 adds quantitative reputation scoring for more precise trust assessments. In addition to the boolean spam flags, v2 returns a numeric reputation score and categorical trust level.

New in v2: Get actionable reputation metrics with reputation_score (0-100), trust_level (high/medium/low), and last_updated timestamp.

REST Endpoint (v2)

POST https://api-service.verirouteintel.io/api/v2/trust

Request Body

{
  "phone_number": "19494600638"
}

Response

{
  "data": {
    "number": "19494600638",
    "is_spam": true,
    "is_robocall": true,
    "is_scam": false,
    "spam_type": "ROBOCALL",
    "complaint_count": 2,
    "subjects": ["Warranties"],
    "reputation_score": 20,
    "trust_level": "low",
    "last_updated": "2026-01-18T12:30:00Z"
  },
  "errors": []
}

Trust Level Thresholds

Trust Level Score Range Description
high 70-100 No spam indicators, low risk number
medium 40-69 Some suspicious activity, moderate risk
low 0-39 Spam/scam/robocall detected, high risk

Reputation Score by Type

Classification Typical Score
Confirmed Scam 10
Confirmed Robocall 20
General Spam 35
Clean (no indicators) 50-85

GraphQL Query (v2)

POST
https://api-service.verirouteintel.io/graphql
Query
query LookupTrustV2($phoneNumber: String!) {
  lookupTrustV2(phoneNumber: $phoneNumber) {
    number
    isSpam
    isRobocall
    isScam
    spamType
    complaintCount
    subjects
    reputationScore
    trustLevel
    lastUpdated
  }
}
Variables
{
  "phoneNumber": "19494600638"
}

Response

{
  "data": {
    "lookupTrustV2": {
      "number": "19494600638",
      "isSpam": true,
      "isRobocall": true,
      "isScam": false,
      "spamType": "ROBOCALL",
      "complaintCount": 2,
      "subjects": ["Warranties"],
      "reputationScore": 20,
      "trustLevel": "low",
      "lastUpdated": "2026-01-18T12:30:00Z"
    }
  }
}

v1 vs v2 Comparison

Feature v1 (/api/v1/trust) v2 (/api/v2/trust)
Spam flags (is_spam, is_robocall, is_scam)
spam_type classification
complaint_count, subjects
reputation_score (0-100) -
trust_level (high/medium/low) -
last_updated timestamp -
Backward Compatibility: The v1 endpoint remains unchanged. Existing integrations using /api/v1/trust will continue to work without modification.

Parameters

Parameter Type Required Description
phone_number / phoneNumber string Yes Phone number in E.164 format (+19494600638) or national format

Response Format

Success Response

{
  "data": {
    "number": "19494600638",
    "is_spam": true,
    "is_robocall": true,
    "is_scam": false,
    "spam_type": "ROBOCALL",
    "complaint_count": 2,
    "subjects": ["Warranties"],
    "first_reported": "2022-06-27T12:33:40Z",
    "last_reported": "2025-07-04T18:02:13Z",
    "details": "FTC DNC complaints: 2"
  },
  "errors": []
}

Response Fields

Field Type Description
is_spam boolean True if any spam indicator detected
is_robocall boolean True if automated/robocall detected
is_scam boolean True if scam/fraud detected
spam_type string Primary classification (see below)

Additional v2 Response Fields

Field Type Description
reputation_score integer 0-100 score (higher = more trustworthy)
trust_level string Categorical level: "high", "medium", or "low"
last_updated string ISO 8601 timestamp of when data was last updated

Spam Types

The spam_type field uses priority ordering: ROBOCALL > SCAM > SPAM

  • NONE - No spam detected
  • SPAM - Known spam number
  • ROBOCALL - Automated calling system (highest priority)
  • SCAM - Fraudulent caller

FTC/Traceback Integration

Seamlessly integrate with FTC traceback reporting and compliance systems:

  • Automated Compliance: Real-time FTC data integration
  • Traceback Reports: Access to official traceback investigations
  • Regulatory Updates: Stay current with federal enforcement actions
  • Audit Trail: Complete documentation for compliance reporting

Sample Requests

cURL - REST API

curl -X POST https://api-service.verirouteintel.io/api/v1/trust \
  -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 LookupTrust($phoneNumber: String!) { lookupTrust(phoneNumber: $phoneNumber) { number isSpam isRobocall spamType complaintCount subjects firstReported lastReported details } }",
    "variables": {"phoneNumber": "19494600638"}
  }'

Python - REST API

import requests

url = "https://api-service.verirouteintel.io/api/v1/trust"
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(f"Spam Status: {result['data']['spam_type']}")

Python - GraphQL

import requests

url = "https://api-service.verirouteintel.io/graphql"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
query = """
query LookupTrust($phoneNumber: String!) {
  lookupTrust(phoneNumber: $phoneNumber) {
    number
    isSpam
    isRobocall
    spamType
    complaintCount
    subjects
    firstReported
    lastReported
    details
  }
}
"""
variables = {"phoneNumber": "19494600638"}

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

cURL - REST API v2 (with Reputation Score)

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

Python - REST API v2

import requests

url = "https://api-service.verirouteintel.io/api/v2/trust"
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()

# Access reputation score and trust level
data = result['data']
print(f"Reputation Score: {data['reputation_score']}/100")
print(f"Trust Level: {data['trust_level']}")
print(f"Last Updated: {data['last_updated']}")

Error Handling

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

{
  "data": {
    "number": "",
    "is_spam": false,
    "spam_type": "INVALID_NUMBER"
  },
  "errors": ["Invalid phone number format"]
}

Rate Limits

API requests are limited to:

  • 200 rps
  • 200 rps 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: 200
X-RateLimit-Remaining: 199
X-RateLimit-Reset: 60

429 Too Many Requests

When rate limits are exceeded, the API returns a 429 status code:

{
  "error": "Rate limit exceeded",
  "message": "Too many requests. Please wait before making another request.",
  "retry_after": 60
}

FAQs

How accurate is the spam detection?

Our Trust API maintains 99.5% accuracy by combining FTC data, carrier reports, and machine learning algorithms updated in real-time.

What data sources are used for reputation scoring?

We aggregate data from FTC complaints, carrier spam reports, consumer feedback, and proprietary machine learning models to provide comprehensive reputation scores.

How often is the spam database updated?

Our database is updated in real-time with new spam reports and FTC traceback data, ensuring the most current threat intelligence.