openapi: 3.0.0
info:
title: TMT Teleshield API specs
termsOfService: https://viteza.tmtid.com/download-terms-and-conditions
contact:
name: TMT Support
email: support@tmtid.com
url: https://www.tmtid.com
x-logo:
url: https://www.tmtid.com/developer/teleshield_logo_png.png
altText: TMT Teleshield
version: ''
paths:
/r-teleshield/{number}:
post:
tags:
- HTTP API v2.0
summary: TeleShield Routing
operationId: POST
description: ''
parameters:
- name: X-API-Key
in: header
description: Your apikey (delivered via email).
required: true
schema:
type: string
- name: X-API-Secret
in: header
description: Your apisecret (delivered via email).
required: true
schema:
type: string
- name: number
in: path
required: true
description: The number in E.164 format (includes the country code sufix).
schema:
type: string
responses:
'200':
headers: {}
content:
application/json:
examples:
TeleShield Routing Successful Command and Response Example:
value:
number: 40766610060
cc: RO
ocic: 4018760
oocn: null
itype: 1
etype: 10
omcc: '226'
omnc: '03'
original_network: Telekom Romania Mobile (Cosmote)
error: 0
trxid: Pp2dxrl
TeleShield Routing Status Message for Invalid Credentials input (apikey/apisecret):
value:
number: 40721275636
status_message: Service or destination not authorized
status: 2
TeleShield Routing Error response for a number that belongs to a Denied Destination:
value:
number: 40721275636
error: 254
error_message: no auth
Input number has no Country Code match:
value:
number: 999999
error: 1
error_message: invalid number
Input number has the wrong length:
value:
number: 407225702400
error: 2
error_message: invalid number length
Input number is not part of an allocated range from the regulator:
value:
number: 40999123233
error: 3
error_message: invalid number range
schema:
type: object
properties:
number:
type: number
description: The telephone number queried
cc:
type: string
ocic:
type: number
oocn:
type: string
itype:
type: number
etype:
type: number
omcc:
type: number
omnc:
type: number
original_network:
type: string
error:
type: number
trxid:
type: string
description: ''
/f-teleshield/{number}:
post:
tags:
- HTTP API v2.0
summary: TeleShield Fraud
operationId: POST
description: ''
parameters:
- name: X-API-Key
in: header
description: Your apikey (delivered via email).
required: true
schema:
type: string
- name: X-API-Secret
in: header
description: Your apisecret (delivered via email).
required: true
schema:
type: string
- name: number
in: path
required: true
description: The number in E.164 format (includes the country code sufix).
schema:
type: string
responses:
'200':
headers: {}
content:
application/json:
examples:
TeleShield Fraud Successful Command and Response Example:
value:
number: 247490XX
cc: AC,
ocic: 247501
oocn: null
itype: 1
etype: 10
omcc: '658'
omnc: '01'
original_network: Sure South Atlantic
iprn_number: true
iprn_number_first_seen: '2023-02-07'
iprn_number_last_seen: '2023-02-07'
iprn_wildcard: true
iprn_wildcard_first_seen: '2023-02-07'
iprn_wildcard_last_seen: '2023-06-20'
msrn: true
msrn_first_seen: '2023-02-07'
msrn_last_seen: '2023-02-07'
ts: 25
tl: M
error: 0
trxid: u621Kb3
TeleShield Fraud Status message for Invalid Credentials (apikey/apisecret):
value:
number: 40722570240
status_message: Service or destination not authorized
status: 2
TeleShield Fraud Error response for a number that belongs to a Denied Destination:
value:
number: 40722570240
error: 254
error_message: no auth
Input number has no Country Code match:
value:
number: 999999
ts: 100
tl: H
error: 1
error_message: invalid number
Input number has the wrong length:
value:
number: 4077
ts: 100
tl: H
error: 2
error_message: invalid number length
Input number is not part of an allocated range from the regulator:
value:
number: 40999123233
ts: 100
tl: H
error: 3
error_message: invalid number range
schema:
type: object
properties:
number:
type: number
description: The telephone number queried
cc:
type: string
ocic:
type: number
oocn:
type: string
itype:
type: number
etype:
type: number
omcc:
type: number
omnc:
type: number
original_network:
type: string
iprn_number:
type: boolean
iprn_number_first_seen:
type: date
iprn_number_last_seen:
type: date
iprn_wildcard:
type: boolean
iprn_wildcard_first_seen:
type: date
iprn_wildcard_last_seen:
type: date
msrn:
type: boolean
msrn_first_seen:
type: date
msrn_last_seen:
type: date
ts:
type: number
tl:
type: string
error:
type: number
trxid:
type: string
description: ''
/e-teleshield/{number v2.0}:
post:
tags:
- HTTP API v2.0
summary: TeleShield Enhanced Fraud
operationId: POST
description: ''
parameters:
- name: X-API-Key
in: header
description: Your apikey (delivered via email).
required: true
schema:
type: string
- name: X-API-Secret
in: header
description: Your apisecret (delivered via email).
required: true
schema:
type: string
- name: number
in: path
required: true
description: The number in E.164 format (includes the country code sufix).
schema:
type: string
responses:
'200':
headers: {}
content:
application/json:
examples:
TeleShield Fraud Successful Command and Response Example:
value:
number: 40766610060
cc: RO
ocic: 4018760
oocn: null
itype: 1
etype: 10
omcc: '226'
omnc: '03'
original_network: Telekom Romania Mobile (Cosmote)
ported: false
ported_date: '2017-11-23'
cic: 4018760
ocn: ''
mcc: 226
mnc: 3
network: Telekom Romania Mobile (Cosmote)
present: 'yes'
iprn_number: false
iprn_wildcard: false
msrn: false
ts: 0
tl: L
error: 0
trxid: Q4iRYrT
TeleShield Enhanced Fraud Status message for Invalid Credentials (apikey/apisecret):
value:
number: 40722570240
status_message: Service or destination not authorized
status: 2
TeleShield Enhanced Fraud Error response for a number that belongs to a Denied Destination:
value:
number: 40722570240
error: 254
error_message: no auth
Input number has no Country Code match:
value:
number: 999999
ts: 100
tl: H
error: 1
error_message: invalid number
Input number has the wrong length:
value:
number: 4077
ts: 100
tl: H
error: 2
error_message: invalid number length
Input number is not part of an allocated range from the regulator:
value:
number: 40999123233
ts: 100
tl: H
error: 3
error_message: invalid number range
Available Number Portability (np) / Unavailable Presence:
value:
number: 23470100000xx
cc: NG
ocic: 234500
oocn: null
itype: 1
etype: 10
omcc: '621'
omnc: '20'
original_network: Airtel
ported: true
ported_date: '2020-10-11'
cic: 234503
ocn: null
mcc: 621
mnc: 60
network: 9Mobile (ETISALAT/Emerging Markets)
present: na
iprn_number: false
iprn_wildcard: false
msrn: false
ts: 5
tl: L
error: 4
error_message: presence not available
trxid: BiiN7LJ
Unavailable Number Portability (np) / Unavailable Presence:
value:
number: 9230440783xx
cc: PK
ocic: 92500
oocn: null
itype: 1
etype: 10
omcc: '410'
omnc: '01'
original_network: Jazz (Mobilink)
cic: 92500
ocn: null
mcc: 410
mnc: 1
network: Jazz (Mobilink)
present: na
iprn_number: false
iprn_wildcard: false
msrn: false
ts: 0
tl: L
error: 5
error_message: presence not available
trxid: pximuMp
schema:
type: object
properties:
number:
type: number
description: The telephone number queried
cc:
type: string
ocic:
type: number
oocn:
type: string
itype:
type: number
etype:
type: number
omcc:
type: number
omnc:
type: number
original_network:
type: string
ported:
type: boolean
ported_date:
type: date
cic:
type: number
ocn:
type: string
mcc:
type: number
mnc:
type: number
network:
type: string
present:
type: string
iprn_number:
type: boolean
iprn_wildcard:
type: boolean
msrn:
type: boolean
ts:
type: number
tl:
type: string
error:
type: number
trxid:
type: string
description: ''
/teleshield/{number}:
post:
tags:
- HTTP API v1.3
summary: POST method Teleshield
operationId: POST
description: ''
parameters:
- name: X-API-Key
in: header
description: The API key (obtained from https://viteza.tmtid.com or from Support during customer on-boarding).
required: true
schema:
type: string
- name: X-API-Secret
in: header
description: The API secret (obtained from https://viteza.tmtid.com or from Support during customer on-boarding).
required: true
schema:
type: string
- name: number
in: path
required: true
description: The number in E.164 format.
schema:
type: string
responses:
'200':
headers: {}
content:
application/json:
examples:
Successful response format:
value:
number: 376321407
cc: AD
ocic: 376500
ocn: null
itype: 1
etype: 10
mcc: 213
omnc: 3
original_network: Mobiland
iprn_number: false
iprn_wildcard: false
msrn: false
error: 0
trxid: d42wkyt
Invalid number response format:
value:
number: 9999721275636
error: 1
error_message: invalid number
Invalid number length response format:
value:
number: 4072127563699
error: 2
error_message: invalid number length
Invalid number range response format:
value:
number: 590691369999
error: 3
error_message: invalid number range
schema:
type: object
properties:
number:
type: number
description: The telephone number queried
cc:
type: string
ocic:
type: number
ocn:
type: string
itype:
type: number
etype:
type: number
mcc:
type: number
omnc:
type: number
original_network:
type: string
iprn_number:
type: boolean
iprn_wildcard:
type: boolean
msrn:
type: boolean
error:
type: number
trxid:
type: string
description: ''
/e-teleshield/{number v1.3}:
post:
tags:
- HTTP API v1.3
summary: POST method E-Teleshield
operationId: POST
description: ''
parameters:
- name: X-API-Key
in: header
description: The API key (obtained from https://viteza.tmtid.com or from Support during customer on-boarding).
required: true
schema:
type: string
- name: X-API-Secret
in: header
description: The API secret (obtained from https://viteza.tmtid.com or from Support during customer on-boarding).
required: true
schema:
type: string
- name: number
in: path
required: true
description: The number in E.164 format.
schema:
type: string
responses:
'200':
headers: {}
content:
application/json:
examples:
Successful response format:
value:
number: 376321407
cc: AD
ocic: 376500
ocn: null
itype: 1
etype: 10
mcc: 213
omnc: 3
original_network: Mobiland
ported: false
cic: 376500
mnc: 3
network: Mobiland
present: 'yes'
iprn_number: false
iprn_wildcard: false
msrn: false
error: 0
trxid: XryJIIw
Invalid number response format:
value:
number: 9999721275636
error: 1
error_message: invalid number
Invalid number length response format:
value:
number: 4072127563699
error: 2
error_message: invalid number length
Invalid number range response format:
value:
number: 590691369999
error: 3
error_message: invalid number range
schema:
type: object
properties:
number:
type: number
description: The telephone number queried
cc:
type: string
ocic:
type: number
ocn:
type: string
itype:
type: number
etype:
type: number
mcc:
type: number
omnc:
type: number
original_network:
type: string
ported:
type: boolean
cic:
type: number
mnc:
type: string
network:
type: string
present:
type: string
iprn_number:
type: boolean
iprn_wildcard:
type: boolean
msrn:
type: boolean
error:
type: number
trxid:
type: string
description: ''
tags:
- description: "\n<h1><strong>v1.0</strong> <em>- September 2021</em></h1>\n\n ---\n\n * Baseline\n\n\n<h1><strong>v1.1</strong> <em>- February 2022</em></h1>\n\n ---\n\n * Coverage update\n\n\n<h1><strong>v1.2</strong> <em>- April 2022</em></h1>\n\n ---\n\n * Data enhancement to provide flag and first seen date for suspicious international premium and mobile station roaming numbers, and associated number ranges\n\n\n<h1><strong>v1.3</strong> <em>- May 2022</em></h1>\n\n ---\n\n * Inclusion of last seen date for suspicious international premium and mobile station roaming numbers, and associated suspicious number ranges\n\n\n<h1><strong>v2.0</strong> <em>- August 2023</em></h1>\n\n ---\n\n * Update of the TeleShield queries available to include Routing, Fraud and Enhanced Fraud use cases.\n\n * Introduction of TeleShield Score and TeleShield Level Assessment in Fraud and Enhanced Fraud query responses.\n\n * Added error 254 for querying destinations banned on customer’s demand.\n\n * Added OOCN, OMCC to all plan packages.\n\n * Applicable to TeleShield Enhanced only: addition of errors 4, 5 (related to the Number Portability and Subscriber Status coverage)."
name: Version history
- description: '
TMT ID is a leading provider of data, intelligence and analytics, helping customers find extra value from the information they hold. Our team of technology and telecommunications specialists has a proven track record empowering companies, brands and agencies around the world to better understand their businesses and their customers. TMT ID has a suite of technology and telecommunications data available, for further information, please visit [www.tmtid.com](https://www.tmtid.com) or email info@tmtid.com.'
name: About TMT
- description: "\n<p>Telecommunications fraud is a global issue that has become even more pervasive with the growth in IP telephony and Voice over IP (VoIP) providers. It costs service providers and their customers billions of dollars annually. The TMT TeleShield service enables companies to take control of their strategy to win against fraudsters.</p>\n<p>With our TeleShield products, companies can ‘shield’ themselves from incurring losses from telephony fraud schemes. TMT provides unique access to real-time data through a robust network of suppliers combined with its own SS7 infrastructure enabling us to provide responses when other suppliers may be blocked by a network operator.</p>\n<p>TeleShield provides intelligence on telephone numbers which can identify suspicious activity and enable service providers to make informed decisions to avoid financial impact or negative customer experience. For example, TeleShield provides information on:</p>\n\n - Has the number been made available for service by the regulator?\n\n - Does the number have a suspicious service type, for example is it a premium rate, satellite or VoIP?\n\n - Has the number been assigned to a subscriber by a service provider?\n\n - Has the number been ported?\n\n<h3>Key features</h3>\n\n - Coverage for more than 240 countries/territories worldwide\n - Flexible access methods to support your needs (e.g., ENUM, HTTP, Batch)\n - Real-time and porting information available as an option\n - Geographically redundant query sites\n - Continuously updated data - number range and portability information\n\n<h3>TeleShield Query Types:</h3>\nTo address market needs, the TeleShield service provides 3 query types to support defined use cases:\n\n- __Routing__ Use Case - provides information to determine whether a telehpone number is invalid so a call/message should not be sent to a telephone number:\n\n - Identify valid numbers - number is part of a range that has been allocated to a service provider and is the correct format/length,\n\n - Confirm detailed service type (e.g., mobile/fixed) and up to 30+ additional service clarifications (e.g., premium, VoIP, satellite, M2M, free phone, toll free, etc.).\n\n- __Fraud__ Use Case – in addition to the information provided in the Routing query response, provides information designed to determine if a number has a proposentity to be use in a fraud scheme.. It is designed for price-sensitive fraud use case solutions and includes telephone number attributes to:\n\n - Identify International Premium Rate Numbers (IPRNs)\n\n - Identify suspicious number ranges\n\n - Provide TeleShield Score and TeleShield Level Assessment for a number to have a propensity to be fraudulent\n\n- __Enhanced__ Fraud Use Case – includes the attributes returned from the Routing and Fraud use case responses plus information from real-time network queries that provides data to:\n\n - Confirm if the number has been assigned to a subscriber\n\n - Identify current service provider\n\n - IndIcate if the number has been ported\n\n - Confirm last port date where available\n\n\n<table> <tr><th> Parameter </th><th> TeleShield Routing </th><th> TeleShield Fraud </th><th> TeleShield Enhanced Fraud </th></tr>\n<tr><td> Identification if a number is valid </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Identification if a number has a valid length </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Identification if a number is part of an allocated range </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Identification if a number is Mobile or Fixed (itype) </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Additional number identification type (etype) </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Country Code (CC) </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Original Carrier MNC, MCC, OCN, CIC, Name </td><td><center>x</center></td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> TeleShield Score assessment (TS) </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> TeleShield Level assessment (TL) </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> International Premium Rated Number (IPRN) Flag </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> First and Last time a number was seen in the IPRN list </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> International Premium Rated Number Suspicious Range Flag </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> The First and the Last time a number was included in a suspicious range </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Mobile Station Roaming Number (MSRN) Flag </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> First and Last time a number was seen in MSRN list </td><td> </td><td><center>x</center></td><td><center>x</center></td></tr>\n<tr><td> Subscriber Status / Presence </td><td> </td><td><center> </center></td><td><center>x</center></td></tr>\n<tr><td> Identification if a number was ported </td><td> </td><td><center> </center></td><td><center>x</center></td></tr>\n<tr><td> Ported Date </td><td> </td><td><center> </center></td><td><center>x</center></td></tr>\n<tr><td> Current Carrier Data (MNC, MCC, OCN, CIC, Name) </td><td> </td><td><center> </center></td><td><center>x</center></td></tr> </table>"
name: TMT TeleShield v2.0 Overview
- description: '
<h3>Output Data description</h3>
<table> <tr><th ROWSPAN = "2"> Field Name<br>(Http api) </th><th ROWSPAN = "2"> Field Name<br>(Enum) </th><th> HTTP API Response </th><th ROWSPAN = "2"> Description </th></tr>
<tr><td>ENUM Response</td></tr>
<tr><td> cc </td><td> cc </td><td> ISO 2 code </td><td> Two (2) letter code as defined in ISO 3166-1, part of the ISO 3166 standard published by the International Organization for Standardization, to represent countries, dependent territories and special areas of geographical interest. </td></tr>
<tr><td> cic </td><td> cic </td><td> Integer value </td><td> Current Carrier Identification Code. It Identifies the current network owner of the queried number. Mapping of the code to a network name is provided by TMT </td></tr>
<tr><td> error </td><td> err </td><td> Values: 0, 1, 2, 3, 4, 5, 254 </td><td> ‘0’ – no error, valid number (correct number length, in an allocated range)<br>''1'' – no country code match<br>''2'' – input number has the wrong length<br>''3'' – input number is not part of a range allocated to a service provider by the regulator<br>''4'' – input number presence is not available, other attributes will be provided where available<br>''5'' – (presence not available) input number presence and portability are not available. Ported and Ported date fields will be hidden in query response.<br>''254'' – (no auth) queried destination was blocked as customer requested. </td></tr>
<tr><td ROWSPAN = "2"> error_message </td><td ROWSPAN = "2"> msg </td><td> invalid number<br> invalid number length<br> invalid number range<br> presence not available<br> no auth </td><td ROWSPAN = "2"> Text information for the error codes.ENUM queries are filtered by firewalls. </td></tr>
<tr><td> invalid_number<br> invalid_number_length<br> invalid_number_range </td></tr>
<tr><td> etype </td><td> et </td><td> Values: [1 – 33] </td><td> Code that further identifies the service type for the number range e.g., Premium rate, VoIP Telephony. List provided as Attachment 2. </td></tr>
<tr><td> itype </td><td> it </td><td> 1 – mobile<br>2 – landline (fixed) </td><td> Service type for the range in which the telephone number is included. </td></tr>
<tr><td ROWSPAN = "2"> iprn_number </td><td ROWSPAN = "2"> iprnn </td><td> yes / no </td><td ROWSPAN = "2"> Value that indicates if the input phone number has been detected as flagged for use to test access. </td></tr>
<tr><td> 1 / 0 </td></tr>
<tr><td ROWSPAN = "2"> iprn_number_first_seen </td><td ROWSPAN = "2"> iprnnd </td><td> yyyy/mm/dd </td><td ROWSPAN = "2"> Date that the IPRN number was first included in a list of suspicious numbers </td></tr>
<tr><td> yyyymmdd </td></tr>
<tr><td ROWSPAN = "2"> iprn_number_last_seen </td><td ROWSPAN = "2"> iprnnl </td><td> yyyy/mm/dd </td><td ROWSPAN = "2"> Date that the IPRN number was last included in a list of suspicious numbers </td></tr>
<tr><td> yyyymmdd </td></tr>
<tr><td ROWSPAN = "2"> iprn_wildcard </td><td ROWSPAN = "2"> iprnr </td><td> true / false </td><td ROWSPAN = "2"> Code that indicates if the input TN has been detected as being part of the number range that has the potential to be used for fraud (e.g., Wangiri, IRSF) </td></tr>
<tr><td> 1 / 0 </td></tr>
<tr><td ROWSPAN = "2"> iprn_wildcard_first_seen </td><td ROWSPAN = "2"> iprnrd </td><td> yyyy/mm/dd </td><td ROWSPAN = "2"> First date that a number in the range was flagged as suspicious </td></tr>
<tr><td> yyyymmdd </td></tr>
<tr><td ROWSPAN = "2"> iprn_wildcard_last_seen </td><td ROWSPAN = "2"> iprnrl </td><td> yyyy/mm/dd </td><td ROWSPAN = "2"> Last date that the number was noted as being available for testing access </td></tr>
<tr><td> yyyymmdd </td></tr>
<tr><td> mcc </td><td> mcc </td><td> 3 – digit number </td><td> Cu
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tmt-id/refs/heads/main/openapi/tmt-id-teleshield.yml