Access the complete MCC MNC list through our free REST API. Get mobile country codes (MCC) and mobile network codes (MNC) for all global operators. Perfect for telecom systems, mobile apps, and network identification. Our MCC MNC database includes PLMN codes, IMSI prefixes, and carrier information.
Base URL: https://destinations-api.telecomsxchange.com
Rate Limit: 100 requests per minute
Authentication: Currently open access (no API key required)
Available APIs: Search destinations, billing updates history, community proposals, health check
Every country, prefix, and MCC/MNC combination now has a dedicated landing page with structured data, FAQ schema, and machine-readable briefs for LLMs.
Search for telecommunications destinations with various filters.
curl "https://destinations-api.telecomsxchange.com/search/?country_name=CAMBODIA&limit=2"
{ "data": [ { "i_destination": 7618595, "prefix": "8552346", "country_name": "CAMBODIA", "description": "Fixed - Metfone", "mccmnc": 0, "interval_1": 60, "interval_n": 1 }, { "i_destination": 7618596, "prefix": "8552446", "country_name": "CAMBODIA", "description": "Fixed - Metfone", "mccmnc": 0, "interval_1": 60, "interval_n": 1 } ], "page": 1, "limit": 2, "total": 419, "total_pages": 210 }
Parameter | Type | Description | Example |
---|---|---|---|
prefix | string | Phone number prefix (digits and + only) | 44, 855, 1 |
country_name | string | Country name (exact match, uppercase) | CAMBODIA, SUDAN |
description | string | Service description (partial match) | Mobile, Fixed |
mccmnc | integer | Mobile Country/Network Code | 310260 |
page | integer | Page number (default: 1) | 1, 2, 3 |
limit | integer | Results per page (max: 1000, default: 100) | 50, 100, 200 |
{ "data": [ { "i_destination": 7618643, "prefix": "855", "country_name": "CAMBODIA", "description": "Fixed - Roc", "mccmnc": 0, "interval_1": 60, "interval_n": 1 } ], "page": 1, "limit": 100, "total": 419, "total_pages": 5 }
Field | Description |
---|---|
i_destination | Unique identifier for the destination |
prefix | Phone number prefix |
country_name | Country name in uppercase |
description | Service type description |
mccmnc | Mobile Country Code + Mobile Network Code |
interval_1 | Initial billing interval (seconds) |
interval_n | Subsequent billing interval (seconds) |
# Search for Cambodia destinations curl "https://destinations-api.telecomsxchange.com/search/?country_name=CAMBODIA&limit=10" # Search by prefix curl "https://destinations-api.telecomsxchange.com/search/?prefix=44&limit=50&page=1" # Multiple filters curl "https://destinations-api.telecomsxchange.com/search/?country_name=SUDAN&description=Fixed" # Get recent billing updates for 2025 curl "https://destinations-api.telecomsxchange.com/updates/?year=2025&limit=20" # Get updates summary statistics curl "https://destinations-api.telecomsxchange.com/updates/summary" # Get updates from last 30 days curl "https://destinations-api.telecomsxchange.com/updates/recent?days=30" # Submit a proposal for data change curl -X POST "https://destinations-api.telecomsxchange.com/proposals/submit" \ -H "Content-Type: application/json" \ -d '{ "i_destination": 7618643, "proposed_interval_1": 60, "proposal_type": "update", "reason_for_change": "Billing changed as of Nov 2024", "submitter_email": "user@example.com" }'
import requests import json # API base URL base_url = "https://destinations-api.telecomsxchange.com" # Example 1: Search destinations params = { "country_name": "CAMBODIA", "limit": 50, "page": 1 } response = requests.get(f"{base_url}/search/", params=params) if response.status_code == 200: data = response.json() print(f"Total results: {data['total']}") for destination in data['data']: print(f"Prefix: {destination['prefix']}, " f"Country: {destination['country_name']}, " f"Billing: {destination['interval_1']}/{destination['interval_n']}") # Example 2: Get billing updates updates_response = requests.get(f"{base_url}/updates/?year=2025") if updates_response.status_code == 200: updates = updates_response.json() for update in updates['updates']: print(f"{update['update_date']}: {update['country_name']} - " f"{update['network_description']} changed to " f"{update['new_interval_1']}/{update['new_interval_n']}") # Example 3: Submit a proposal proposal_data = { "i_destination": 7618643, "proposed_interval_1": 60, "proposal_type": "update", "reason_for_change": "Billing changed", "submitter_email": "user@example.com" } proposal_response = requests.post( f"{base_url}/proposals/submit", json=proposal_data ) if proposal_response.status_code == 201: result = proposal_response.json() print(f"Proposal submitted: ID {result['id']}")
// Using Fetch API const baseUrl = 'https://destinations-api.telecomsxchange.com'; async function searchDestinations() { const params = new URLSearchParams({ country_name: 'CAMBODIA', limit: 50, page: 1 }); try { const response = await fetch(`${baseUrl}/search/?${params}`); const data = await response.json(); console.log(`Total results: ${data.total}`); console.log(`Page ${data.page} of ${data.total_pages}`); data.data.forEach(destination => { console.log( `Prefix: ${destination.prefix}, ` + `Country: ${destination.country_name}, ` + `Billing: ${destination.interval_1}/${destination.interval_n}` ); }); } catch (error) { console.error('Error:', error); } } searchDestinations();
<?php $baseUrl = 'https://destinations-api.telecomsxchange.com'; // Search parameters $params = [ 'country_name' => 'CAMBODIA', 'limit' => 50, 'page' => 1 ]; // Build URL with query parameters $url = $baseUrl . '/search/?' . http_build_query($params); // Make request $response = file_get_contents($url); $data = json_decode($response, true); if ($data) { echo "Total results: " . $data['total'] . "\n"; echo "Page " . $data['page'] . " of " . $data['total_pages'] . "\n\n"; foreach ($data['data'] as $destination) { echo "Prefix: " . $destination['prefix'] . ", "; echo "Country: " . $destination['country_name'] . ", "; echo "Billing: " . $destination['interval_1'] . "/" . $destination['interval_n'] . "\n"; } } else { echo "Error fetching data\n"; } ?>
Keep your internal records updated by implementing periodic synchronization:
#!/bin/bash # Example cron job for daily synchronization # Add to crontab: 0 2 * * * /path/to/sync_destinations.sh API_URL="https://destinations-api.telecomsxchange.com/search/" OUTPUT_FILE="/var/data/destinations_$(date +%Y%m%d).json" # Fetch all destinations with pagination page=1 while true; do response=$(curl -s "${API_URL}?limit=1000&page=${page}") # Extract total pages on first iteration if [ $page -eq 1 ]; then total_pages=$(echo $response | jq '.total_pages') fi # Save data echo $response >> $OUTPUT_FILE # Check if more pages exist if [ $page -ge $total_pages ]; then break fi page=$((page + 1)) sleep 1 # Rate limiting done echo "Synchronization complete: $OUTPUT_FILE"
Status Code | Description | Solution |
---|---|---|
200 | Success | Request processed successfully |
400 | Bad Request | Provide at least one search parameter |
422 | Validation Error | Check parameter format (e.g., prefix should contain only digits) |
429 | Rate Limit Exceeded | Wait before making more requests (max 100/minute) |
500 | Internal Server Error | Server issue - retry after a few moments |
Get historical billing updates and changes.
curl "https://destinations-api.telecomsxchange.com/updates/?year=2025&limit=3"
{ "updates": [ { "id": 2, "update_date": "2025-10-01", "country_name": "Mauritania", "network_description": "Chinguitel Mobile & Other", "prefix_affected": "+222", "new_interval_1": 60, "new_interval_n": 60, "change_type": "increase", "year_period": 2025, "notes": "Billing increment increased" }, { "id": 1, "update_date": "2025-10-01", "country_name": "Sudan", "network_description": "Fixed Networks", "new_interval_1": 60, "new_interval_n": 60, "change_type": "increase", "year_period": 2025 } ], "total": 14, "year_filter": 2025 }
Parameter | Type | Description | Example |
---|---|---|---|
year | integer | Filter by year | 2024, 2025 |
country | string | Filter by country name (partial match) | Cambodia, Sudan |
change_type | enum | Filter by change type | increase, decrease, improved, mixed |
limit | integer | Maximum results (max: 500) | 50, 100 |
Get aggregated statistics about billing updates by year and change type.
curl "https://destinations-api.telecomsxchange.com/updates/summary"
{ "total_updates": 20, "recent_updates": 3, "by_year": { "2025": { "total": 14, "by_type": { "increase": 8, "improved": 5, "mixed": 1 }, "countries_affected": 3 }, "2024": { "total": 6, "by_type": { "increase": 4, "improved": 2 }, "countries_affected": 2 } }, "last_updated": "2025-09-26 21:30:26 UTC" }
Get updates from the last N days.
curl "https://destinations-api.telecomsxchange.com/updates/recent?days=30"
{ "updates": [ { "id": 2, "update_date": "2025-10-01", "country_name": "Mauritania", "network_description": "Chinguitel Mobile & Other", "prefix_affected": "+222", "new_interval_1": 60, "new_interval_n": 60, "change_type": "increase", "year_period": 2025 } ], "total": 13, "days_included": 30, "message": "Showing updates from the last 30 days" }
Parameter | Type | Description | Example |
---|---|---|---|
days | integer | Number of days to look back (1-365, default: 30) | 7, 30, 90 |
Submit a proposal for data changes. Requires JSON body with proposal details.
curl -X POST "https://destinations-api.telecomsxchange.com/proposals/submit" \ -H "Content-Type: application/json" \ -d '{ "i_destination": 7618643, "proposed_interval_1": 60, "proposed_interval_n": 1, "proposal_type": "update", "reason_for_change": "Cambodia operator changed billing to 60/1", "supporting_evidence": "Carrier notification dated 2024-11-01", "submitter_email": "user@example.com", "submitter_name": "John Doe", "company_name": "Telco Inc" }'
{ "id": 1, "status": "pending", "message": "Thank you for your contribution! Your proposal has been submitted and will be reviewed by our team.", "created_at": "2025-09-26T21:10:52.720210" }
Get statistics about community proposals.
curl "https://destinations-api.telecomsxchange.com/proposals/stats"
{ "total_proposals": 2, "pending_review": 2, "approved": 0, "implemented": 0, "recent_submissions": 2, "message": "Community contributions help keep our data accurate and up-to-date" }
Check API and database health status.
curl "https://destinations-api.telecomsxchange.com/health"
{ "status": "healthy", "database": "connected" }
Get API information and available endpoints.
curl "https://destinations-api.telecomsxchange.com/api"
{ "status": "OK", "message": "Welcome to the Destination Search API", "documentation": "/docs", "web_interface": "/web", "endpoints": { "search": "/search/", "health": "/health", "updates": "/updates/", "proposals": "/proposals/", "docs": "/docs", "openapi": "/openapi.json", "web": "/web", "api": "/api" } }
Interactive API documentation (Swagger UI).
OpenAPI 3.0 specification for code generation.
Need Help? For technical support or to report issues, please visit www.telecomsxchange.com/contact
Updates: Billing intervals are regularly updated. Check the API for the latest rates.
TMF685-compliant API providing comprehensive telecommunications numbering data including E.164/E.212 mappings, up-to-date billing increments per country, international dial codes, mobile country codes (MCC), mobile network codes (MNC), and destination prefixes. Delivered through standardized TMF685 Resource Inventory Management endpoints for seamless enterprise integration.
Base URL: https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4
Standard: TMF685 Resource Inventory Management v4.0
Data Provided: E.164/E.212 mappings, billing increments, MCC/MNC codes, dial codes, prefixes
Resource Type: NumberingMapping (Telecommunications numbering resources)
Authentication: HTTP Basic Authentication required
Credentials: Contact administrator for TMF685 API credentials
All TMF685 API endpoints require HTTP Basic Authentication. Include your credentials with each request:
# Authentication format curl -u "USERNAME:PASSWORD" [URL] # Or using headers curl -H "Authorization: Basic [BASE64_ENCODED_CREDENTIALS]" [URL]
Note: Replace USERNAME:PASSWORD
with your provided TMF685 API credentials.
Search Telecommunications Numbering Data - Retrieve E.164/E.212 mappings, billing increments, MCC/MNC codes, dial codes, and destination prefixes through TMF685-compliant NumberingMapping resources with advanced filtering capabilities
Parameter | Type | Description | Example |
---|---|---|---|
fields | string | Comma-separated fields to return (sparse fieldsets) | id,name,resourceCharacteristic |
offset | integer | Number of items to skip (pagination) | 0 |
limit | integer | Maximum items to return (1-1000) | 100 |
place.name | string | Filter by country/place name | CAMBODIA |
relatedParty.name | string | Filter by operator/network provider | Zain |
resourceCharacteristic.name | string | Characteristic name for advanced filtering | e164Prefix, mcc, networkType |
resourceCharacteristic.value | string | Characteristic value (requires name) | 855, Mobile, 60/60 |
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource?place.name=CAMBODIA&limit=2"
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource?resourceCharacteristic.name=e164Prefix&resourceCharacteristic.value=855&limit=1"
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource?resourceCharacteristic.name=billingFormat&resourceCharacteristic.value=60/60&limit=2"
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource?fields=id,name,resourceCharacteristic&limit=1"
[ { "id": "res-855-7618643", "href": "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource/res-855-7618643", "name": "E164/E212 Mapping – 855 (Fixed - Roc)", "description": "E.164 prefix 855 mapped to network Fixed - Roc with billing increments 60/1", "category": "NumberingMapping", "resourceStatus": "available", "lifecycleStatus": "active", "version": "2025-10-01", "lastUpdate": "2025-10-01T21:24:02.087285Z", "validFor": { "startDateTime": "2023-01-01T00:00:00Z", "endDateTime": null }, "resourceSpecification": { "id": "spec-numbering-mapping", "href": "https://destinations-api.telecomsxchange.com/tmf/resourceCatalogManagement/v4/resourceSpecification/spec-numbering-mapping", "name": "Numbering & Network Mapping Spec", "@referredType": null, "version": null }, "place": [{ "id": "country-CAMBODIA", "href": null, "name": "CAMBODIA", "@referredType": null, "role": "country" }], "relatedParty": [{ "id": "operator-fixed", "href": null, "name": "Fixed", "@referredType": null, "role": "operator" }], "resourceCharacteristic": [ {"name": "e164Prefix", "value": "855", "valueType": null}, {"name": "countryName", "value": "CAMBODIA", "valueType": null}, {"name": "operator", "value": "Fixed - Roc", "valueType": null}, {"name": "interval_1", "value": 60, "valueType": null}, {"name": "interval_n", "value": 1, "valueType": null}, {"name": "billingFormat", "value": "60/1", "valueType": null}, {"name": "networkType", "value": "Fixed", "valueType": null} ], "@type": "Resource", "@baseType": "LogicalResource" } ]
Header | Description | Example |
---|---|---|
X-Total-Count | Total number of matching resources | 239566 |
X-Result-Count | Number of resources returned | 1 |
Get Specific Resource - Retrieve a single resource by TMF685 resource ID
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource/res-855-7618643"
{ "id": "res-855-7618643", "href": "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resource/res-855-7618643", "name": "E164/E212 Mapping – 855 (Fixed - Roc)", "description": "E.164 prefix 855 mapped to network Fixed - Roc with billing increments 60/1", "category": "NumberingMapping", "resourceStatus": "available", "lifecycleStatus": "active", ... }
Get Resource Specification - Retrieve the specification that defines NumberingMapping resources
curl -u "USERNAME:PASSWORD" \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/resourceSpecification/spec-numbering-mapping"
{ "id": "spec-numbering-mapping", "href": "https://destinations-api.telecomsxchange.com/tmf/resourceCatalogManagement/v4/resourceSpecification/spec-numbering-mapping", "name": "Numbering & Network Mapping Spec", "description": "Specification for E.164↔E.212 mapping and wholesale billing increments", "version": "1.0.0", "lastUpdate": "2025-10-01T21:24:19.408489", "resourceSpecCharacteristic": [ { "name": "e164Prefix", "valueType": "string", "configurable": false, "description": "E.164 telephone number prefix" }, { "name": "countryName", "valueType": "string", "configurable": false, "description": "Country name" } ], "@type": "ResourceSpecification" }
Register Event Listener - Register a callback URL to receive real-time resource change events
curl -u "USERNAME:PASSWORD" -X POST \ "https://destinations-api.telecomsxchange.com/tmf/resourceInventoryManagement/v4/hub" \ -H "Content-Type: application/json" \ -d '{ "callback": "https://example.com/tmf-events", "query": "category=NumberingMapping" }'
{ "id": "5951873f-55f4-4bc8-acd4-618ca95f5159", "callback": "https://example.com/tmf-events", "query": "category=NumberingMapping" }
List Event Listeners - Get all registered hub callbacks
Unregister Event Listener - Remove a registered callback URL
Characteristic | Type | Description | Example |
---|---|---|---|
e164Prefix | string | E.164 telephone number prefix | 855, 1, 44 |
countryName | string | Country name | CAMBODIA, UNITED STATES |
operator | string | Network operator description | Fixed - Roc, Verizon Mobile |
mcc | string | Mobile Country Code | 456, 310, 234 |
mnc | string | Mobile Network Code | 01, 260, 15 |
networkType | string | Network type classification | Mobile, Fixed, Satellite |
interval_1 | integer | Initial billing interval (seconds) | 60, 6, 1 |
interval_n | integer | Subsequent billing interval (seconds) | 60, 6, 1 |
billingFormat | string | Billing format (initial/subsequent) | 60/60, 6/6, 1/1 |
Legacy API | TMF685 API | Notes |
---|---|---|
/search/?country_name=CAMBODIA |
/resource?place.name=CAMBODIA |
Country filtering |
/search/?prefix=855 |
/resource?resourceCharacteristic.name=e164Prefix&resourceCharacteristic.value=855 |
Prefix search |
/search/?mccmnc=41601 |
/resource?resourceCharacteristic.name=mccmnc&resourceCharacteristic.value=41601 |
MCC/MNC search |
/updates/ |
Event notifications via /hub |
Real-time updates |
Enterprise Integration: The TMF685 API follows TM Forum Open API standards, making it ideal for integration with BSS/OSS systems, network management platforms, and enterprise applications that require standardized telecommunications APIs.
Coexistence: Both legacy and TMF685 APIs work simultaneously on the same data. Choose the format that best fits your integration needs.
Stay informed about the latest billing increment changes from major carriers. These updates reflect recent modifications to minimum billing intervals and increment rates across global destinations.
Note: Billing increments shown as "X/Y" where X is the initial interval (seconds) and Y is the subsequent interval (seconds).
Effective Date | Country/Destination | Description | New Billing | Change Type |
---|---|---|---|---|
Oct 7, 2025 | Australia Territories | ALL (+672) | 60/60 | Increased |
Oct 7, 2025 | Mauritania | ALL (+222) | 60/60 | Updated |
Oct 1, 2025 | Sudan | Fixed Networks | 60/60 | Increased |
Sep 18, 2025 | Sudan | Sudatel Mobile (Sudani) (+24910, +24911, +24912) | 60/60 | Increased |
Aug 25, 2025 | Cambodia | ALL (+855) | 60/1 | Modified |
Aug 4, 2025 | Sudan | Zain Mobile (+24990, +24991, +24996) | 60/1 | Improved |
Aug 4, 2025 | Macau | All Networks | 60/1 | Improved |
Aug 4, 2025 | St. Lucia | All Networks | 60/1 | Improved |
Aug 4, 2025 | Mali | All Networks | 60/60 | Increased |
Aug 4, 2025 | Diego Garcia | All Networks | 60/60 | Increased |
Aug 4, 2025 | Anguilla | All Networks | 60/60 | Increased |
Jul 10, 2025 | St. Helena | All Networks (+290) | 60/60 | Increased |
Jul 4, 2025 | São Tomé & Príncipe | All Networks (+239) | 60/60 | Increased |
Jul 1, 2025 | Cambodia | Cellcard Mobile | 60/1 | Improved |
May 2, 2025 | Cambodia | All Networks | 15/15 | Improved |
2024 Updates | ||||
Dec 20, 2024 | Azerbaijan | All Networks (+994) | 60/1 | Improved |
Dec 9, 2024 | Saudi Arabia | STC (from Micronesia +691, Suriname +597, Comoros +269) | 60/60 | Increased |
Dec 1, 2024 | Ethiopia | Safaricom Mobile | 60/1 | Improved |
Dec 1, 2024 | Comoros | All Networks (+269) | 60/60 | Increased |
Nov 1, 2024 | Micronesia | All Networks (+691) | 60/60 | Increased |
Oct 8, 2024 | Nepal | NT Mobile | 60/60 | Increased |
Understanding Billing Increments: