Documentation Index
Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Once your enterprise is approved for Number Reputation, you can associate phone numbers for monitoring. Each number gets its own reputation data with spam risk levels and granular scores.
Associate phone numbers
Add phone numbers for reputation monitoring:
curl -X POST https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_numbers": ["+12025551234", "+12025555678"]
}'
- Up to 100 numbers per request
- Atomic operation — all numbers succeed or all fail
- Numbers must be US local in E.164 format
- Numbers must be in-service and belong to your account
Query reputation
Cached query (free)
Returns the most recent stored reputation data:
curl https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/+12025551234 \
-H "Authorization: Bearer YOUR_API_KEY"
Fresh query (billed)
Fetches live data from Hiya:
curl https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/+12025551234?fresh=true \
-H "Authorization: Bearer YOUR_API_KEY"
If no cached data exists for a number, a fresh query is automatically triggered regardless of the fresh parameter — so a brand-new number always returns live data on its first GET (and counts as a billed query). If Hiya doesn’t have data for the number yet, reputation_data will still be null.
Reputation data model
Each number returns a reputation_data object. For newly-added numbers, reputation_data may be null until the first reputation check completes (either via auto-refresh schedule or a manual refresh).
{
"data": {
"id": "16286ab3-038a-4a5c-9792-309026cf6b9e",
"phone_number": "+12025551234",
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"reputation_data": {
"spam_risk": "low",
"spam_category": null,
"maturity_score": 82,
"connection_score": 75,
"engagement_score": 68,
"sentiment_score": 90,
"last_refreshed_at": "2026-03-24T12:00:00Z"
},
"created_at": "2026-04-26T18:06:51.940749Z",
"updated_at": "2026-04-26T18:09:24.785211Z"
}
}
Spam risk
| Value | Meaning |
|---|
low | Number has a clean reputation |
medium | Some risk indicators present |
high | Number is likely flagged as spam by carriers |
Granular scores (0–100)
| Score | What it measures |
|---|
maturity_score | How established the number is based on calling history over time |
connection_score | How often recipients answer calls from this number |
engagement_score | Whether recipients stay on the call after answering |
sentiment_score | Whether recipients want ongoing contact (blocking/reporting behavior) |
A null score means there isn’t enough data to make a determination.
Spam categories
If a number is flagged, spam_category indicates the label assigned by analytics engines (e.g. “Telemarketer”, “Survey”, “Debt Collector”, “Nonprofit”, “Political”). The set is determined by the upstream analytics feed and may grow over time — treat it as an opaque string.
List all monitored numbers
curl "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers" \
-H "Authorization: Bearer YOUR_API_KEY"
| Query parameter | Description |
|---|
page[number] | Page number, starts at 1. Defaults to 1. |
page[size] | Items per page. Defaults to 10, max 250. |
phone_number | Filter to a specific number (E.164, URL-encode the leading + as %2B). |
Example with filter:
curl "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers?phone_number=%2B12025551234" \
-H "Authorization: Bearer YOUR_API_KEY"
Force a refresh on demand
The check_frequency schedule runs automatically, but you can also ask Telnyx to refresh one or more numbers immediately — useful right after registering a new number, or when you suspect a reputation change.
curl -X POST https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/refresh \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_numbers": ["+12025551234", "+12025555678"]
}'
- 1–100 numbers per request.
- All listed numbers must already be associated with the enterprise.
- The call is synchronous: Telnyx fans out to the reputation feed and returns a per-number result.
Response shape:
{
"data": {
"results": [
{ "phone_number": "+12025551234", "success": true, "error": null },
{ "phone_number": "+12025555678", "success": false, "error": "Number not associated" }
],
"total_requested": 2,
"total_successful": 1,
"total_failed": 1
}
}
Each successful refresh counts as a billed query per number.
Remove a number from monitoring
curl -X DELETE https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/+12025551234 \
-H "Authorization: Bearer YOUR_API_KEY"
Simplified endpoints
If your account has only one enterprise, you can skip the enterprise_id path parameter:
| Method | Simplified path |
|---|
| GET | /v2/reputation/numbers |
| GET | /v2/reputation/numbers/{phone_number} |
| DELETE | /v2/reputation/numbers/{phone_number} |
# List all monitored numbers (simplified)
curl https://api.telnyx.com/v2/reputation/numbers \
-H "Authorization: Bearer YOUR_API_KEY"
# Get reputation for a specific number (simplified)
curl https://api.telnyx.com/v2/reputation/numbers/+12025551234 \
-H "Authorization: Bearer YOUR_API_KEY"