AVAILABLE
Customer Data
Phone Number Normalize & Policy Guard
Inspect, normalize, compare, batch-check, and apply explicit policy to international phone numbers using versioned offline numbering-plan metadata.
CONTRACT
Predictable for agents. Legible for reviewers.
- REST
POST /v1/phone-numbers/policy-check- MCP tool
check_phone_number_policy- Inputs
- One trimmed phone-number string up to 128 characters with an explicit default ISO region for national input; comparison accepts two values and batch inspection accepts up to 1,000 items.
- Returns
- CLEAR, REVIEW_REQUIRED, or BLOCKED with E.164, international, national, and RFC 3966 formats, region and number type, possibility and validity evidence, exact duplicate groups, named findings, metadata version, and next action.
- Latency
- Synchronous
- Usage unit
- Phone-number operation
The suite also exposes /v1/phone-numbers/inspect, /v1/phone-numbers/normalize, /v1/phone-numbers/compare, and /v1/phone-numbers/batch/inspect plus /mcp/phone. It uses offline numbering-plan metadata and never places a call, sends a message, queries a live carrier, verifies ownership, proves current assignment or reachability, confirms SMS capability, accesses the network, or stores payloads.
AGENT-READABLE EXCEPTIONS
PHONE_DEFAULT_REGION_REQUIREDPHONE_PARSE_ERRORPHONE_NOT_POSSIBLEPHONE_NOT_VALIDPHONE_REGION_NOT_ALLOWEDPHONE_TYPE_NOT_ALLOWEDPHONE_E164_INPUT_REQUIREDPHONE_EXTENSION_BLOCKEDPHONE_PREMIUM_RATE_BLOCKEDPHONE_OUTPUT_TOO_LARGEHTTP request
POST /v1/phone-numbers/policy-check
Authorization: Bearer apc_...
Content-Type: application/json
{
"number": "+14155552671",
"allowed_regions": [
"US",
"CA"
],
"allowed_types": [
"MOBILE",
"FIXED_LINE_OR_MOBILE"
],
"require_region_allowlist": true,
"require_type_allowlist": true,
"require_possible": true,
"require_valid": true,
"require_e164_input": true,
"allow_extensions": false,
"block_premium_rate": true,
"block_shared_cost": true
}cURL (bash)
curl --request POST \
--url 'https://api-production-9502.up.railway.app/v1/phone-numbers/policy-check' \
--header 'Authorization: Bearer ${AP_CONTROL_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
"number": "+14155552671",
"allowed_regions": [
"US",
"CA"
],
"allowed_types": [
"MOBILE",
"FIXED_LINE_OR_MOBILE"
],
"require_region_allowlist": true,
"require_type_allowlist": true,
"require_possible": true,
"require_valid": true,
"require_e164_input": true,
"allow_extensions": false,
"block_premium_rate": true,
"block_shared_cost": true
}'Representative response
{
"status": "COMPLETED",
"decision": "CLEAR",
"permitted": true,
"parsed": {
"country_code": 1,
"national_number": "4155552671",
"extension": null,
"region_code": "US",
"number_type": "FIXED_LINE_OR_MOBILE",
"possible": true,
"possible_reason": "IS_POSSIBLE",
"valid": true,
"valid_for_region": true,
"formats": {
"e164": "+14155552671",
"international": "+1 415-555-2671",
"national": "(415) 555-2671",
"rfc3966": "tel:+1-415-555-2671"
},
"metadata_version": "9.0.36",
"static_metadata_only": true,
"currently_assigned_verified": false,
"reachable_verified": false,
"ownership_verified": false,
"current_carrier_queried": false,
"sms_capability_verified": false,
"network_access_performed": false,
"payload_stored": false
},
"findings": [],
"ruleset_version": "2026-08-11",
"static_metadata_only": true,
"reachability_verified": false,
"ownership_verified": false,
"network_access_performed": false,
"payload_stored": false,
"next_action": "Continue only as static numbering-plan evidence; perform authorized reachability or ownership verification separately."
}Use Phone Number Normalize & Policy Guard through RapidAPI.
Choose a capped marketplace plan, copy the generated request, and route the structured result through your own authorized workflow.