Trust is the best solution to prevent malicious actions on your platform through APIs.
Verify the validity of your customers' and users' information in seconds: from mobile number to email and personal data.
All the knowledge you need
Here you can find some advice to consider to approach this API. If you prefer, we provide code samples, OAS3 documentation, the ability to try the API live via the Swagger UI or import the entire collection into Postman. We also offer a Sandbox environment where you can experiment with all kinds of requests completely free of charge.
Get the token in the appropriate section before you start.
API trust
Validate phone
POST /mobile-start/{mobile-phone-number}Create a new request, the body post is used to specify "callback" parameters. The system will start a globl HLR lookup on the specified phone number.
Some mobile carriers and network congestion can slow down the request.
If the search takes longer than 10 seconds, you'll get a partial result with a status of "NEW" or "WAIT". Just wait for a notification when the search is finished. You can also check the status manually using the GET method and the provided ID.
Validate email
POST /email-start/{email}Create a new request to validate an email address. The body can specify callback parameters. The system will start an email validation process.
If the validation takes longer than a few seconds, you might get a partial result with status 'NEW' or 'WAIT'. Check status manually using GET /email-start/{id} or wait for callback.
Retrieve a validation request
GET /mobile-start/{id}Returns a request detail to check the "state"
GET /email-start/{id}
Returns a request detail to check the "state"
- Oas file url https://console.openapi.com/oas/en/trust.openapi.json
- Fork or import with Postman
- Production domain trust.openapi.com
- Sandbox domain test.trust.openapi.com
- Production Scopes 4
-
Sandbox Scopes 4
- POST test.trust.openapi.com/mobile-start
- GET test.trust.openapi.com/mobile-start
- POST test.trust.openapi.com/email-start
- GET test.trust.openapi.com/email-start
Trust (1.0.0)
Use this API to verify the validity and trustworthiness of data such as email addresses and mobile phone numbers.
Retrive a request
Returns a request detail to check the "state"
Authorizations:
path Parameters
id required | string Example: 66c881896de559cb65055392 request id obtained using the "POST" method |
Responses
Response Schema: application/json
object (mobile-start) | |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://trust.openapi.com/mobile-start/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- 406
- "data": {
- "isPossible": true,
- "isValid": true,
- "regionCode": "IT",
- "isValidNumberForRegion": true,
- "numberType": "MOBILE",
- "requestedNumber": "00393332114774",
- "formattedNumber": "+393332114774",
- "createdAt": "2024-09-06T13:56:19+00:00",
- "updatedAt": "2024-09-06T13:56:19+00:00",
- "state": "DONE",
- "network": "MNO - Vodafone Italy",
- "originalNetwork": "MNO - TIM (Telecom Italia SpA)",
- "roaming": false,
- "ported": true,
- "country": "Italy",
- "countryPrefix": "39",
- "details": "DELIVERED_TO_HANDSET",
- "id": "66db0a03e8ba8710290e3c0f"
- "success": true,
- "message": "",
- "error": ""
Create a new HLR request
Create a new request, the body post is used to specify "callback" parameters. The system will start a globl HLR lookup on the specified phone number.
Some mobile carriers and network congestion can slow down the request. If the search takes longer than 10 seconds, you'll get a partial result with a status of "NEW" or "WAIT". Just wait for a notification when the search is finished. You can also check the status manually using the GET method and the provided ID.
Authorizations:
path Parameters
mobile-phone-number required | string Example: +393939989747 The mobile phone in complete of the international prefix |
Request Body schema: application/json
object This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint. |
Responses
Response Schema: application/json
object (mobile-start) | |
success | boolean |
message | string |
error | string |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
Response samples
- 200
- 406
- "data": {
- "isPossible": true,
- "isValid": true,
- "regionCode": "IT",
- "isValidNumberForRegion": true,
- "numberType": "MOBILE",
- "requestedNumber": "00393332114474",
- "formattedNumber": "+393332114474",
- "createdAt": "2024-09-06T13:56:19+00:00",
- "updatedAt": "2024-09-06T13:56:19+00:00",
- "state": "DONE",
- "network": "MNO - Vodafone Italy",
- "originalNetwork": "MNO - TIM (Telecom Italia SpA)",
- "roaming": false,
- "ported": true,
- "country": "Italy",
- "countryPrefix": "39",
- "details": "DELIVERED_TO_HANDSET",
- "id": "66db0a03e8ba8710290e3c0f"
- "success": true,
- "message": "",
- "error": null
Retrieve an email validation request
Returns an email validation request detail to check the "state" and results.
Authorizations:
path Parameters
id required | string Example: 77e9e92216065fa37f3c9842 Request ID obtained using the POST /email-start/{email} method |
Responses
Response Schema: application/json
object (email-start) | |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://trust.openapi.com/email-start/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- 406
- "data": {
- "validSpf": false,
- "validDmarc": true,
- "spfDetails": {
- "domain": "openapi.com",
- "dnsServerUsed": "1.1.1.1",
- "queriedDnsForTxt": true,
- "selectedSpfRecord": "v=spf1 include:spf.mailtrusted.org include:emsd1.com include:mailgun.org -all",
- "formalValidity": {
- "startsWithVspf1": true,
- "hasValidAllMechanism": false,
- "dnsMechanismLookupCount": 10,
- "maxDnsMechanismLookups": 10,
- "voidLookupCount": 0,
- "maxVoidLookups": 2,
- "hasRedirectModifier": false,
- "redirectDomain": null,
- "syntaxErrors": [
- "DNS lookup limit at 'include:_spf2.mailgun.org'."
- "warnings": [ ],
- "explanationDomain": null
- "parsedMechanisms": [
- {
- "term": "include:spf.mailtrusted.org",
- "mechanism": "include",
- "value": "spf.mailtrusted.org",
- "qualifier": "+",
- "lookupCost": 1,
- "isVoidLookup": false,
- "ipsFound": [ ],
- "effectiveResultIfMatched": "PASS",
- "includedReport": {
- "recurse": "all submechanisms included"
- {
- "term": "include:emsd1.com",
- "mechanism": "include",
- "value": "emsd1.com",
- "qualifier": "+",
- "lookupCost": 1,
- "isVoidLookup": false,
- "ipsFound": [ ],
- "effectiveResultIfMatched": "PASS",
- "includedReport": {
- "recurse": "all submechanisms included"
- "allMechanismDetails": null,
- "collectedIpAddresses": {
- "ip4": [
- "207.180.201.22",
- "207.180.222.205",
- "207.180.226.204",
- "etc"
- "ip6": [
- "2001:4860:4000::/36",
- "2404:6800:4000::/36",
- "etc"
- "fromA": [ ],
- "fromMx": [ ]
- "summary": {
- "totalDnsMechanismLookupsUsed": 10,
- "finalProcessingResult": "PERMERROR",
- "evaluationLog": [ ]
- "dmarcDetails": {
- "recordFound": true,
- "record": "v=DMARC1; p=none",
- "dnsQueryDomain": "_dmarc.openapi.com",
- "dnsServerUsed": "8.8.8.8",
- "policy": "none",
- "subdomainPolicy": null,
- "alignmentDkim": "r",
- "alignmentSpf": "r",
- "percentage": 100,
- "reportingUrisAggregate": [ ],
- "reportingUrisFailure": [ ],
- "failureOptions": [ ],
- "errors": [ ],
- "warnings": [ ]
- "createdAt": "2025-05-27T12:58:39+00:00",
- "updatedAt": "2025-05-27T12:58:40+00:00",
- "state": "NEW",
- "id": "6835b6fff6722090d00e74fb"
- "success": true,
- "message": "",
- "error": null
Create a new email validation request
Create a new request to validate an email address. The body can specify callback parameters. The system will start an email validation process. If the validation takes longer than a few seconds, you might get a partial result with status 'NEW' or 'WAIT'. Check status manually using GET /email-start/{id} or wait for callback.
Authorizations:
path Parameters
email required |
Request Body schema: application/json
object This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint. |
Responses
Response Schema: application/json
object (email-start) | |
success | boolean |
message | string |
error | string |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "callback": {
- "custom": {
- "orderId": "email-check-456"
Response samples
- 200
- 400
- 406
- "data": {
- "validSpf": false,
- "validDmarc": true,
- "spfDetails": {
- "domain": "openapi.com",
- "dnsServerUsed": "1.1.1.1",
- "queriedDnsForTxt": true,
- "selectedSpfRecord": "v=spf1 include:spf.mailtrusted.org include:emsd1.com include:mailgun.org -all",
- "formalValidity": {
- "startsWithVspf1": true,
- "hasValidAllMechanism": false,
- "dnsMechanismLookupCount": 10,
- "maxDnsMechanismLookups": 10,
- "voidLookupCount": 0,
- "maxVoidLookups": 2,
- "hasRedirectModifier": false,
- "redirectDomain": null,
- "syntaxErrors": [
- "DNS lookup limit at 'include:_spf2.mailgun.org'."
- "warnings": [ ],
- "explanationDomain": null
- "parsedMechanisms": [
- {
- "term": "include:spf.mailtrusted.org",
- "mechanism": "include",
- "value": "spf.mailtrusted.org",
- "qualifier": "+",
- "lookupCost": 1,
- "isVoidLookup": false,
- "ipsFound": [ ],
- "effectiveResultIfMatched": "PASS",
- "includedReport": {
- "recurse": "all submechanisms included"
- {
- "term": "include:emsd1.com",
- "mechanism": "include",
- "value": "emsd1.com",
- "qualifier": "+",
- "lookupCost": 1,
- "isVoidLookup": false,
- "ipsFound": [ ],
- "effectiveResultIfMatched": "PASS",
- "includedReport": {
- "recurse": "all submechanisms included"
- "allMechanismDetails": null,
- "collectedIpAddresses": {
- "ip4": [
- "207.180.201.22",
- "207.180.222.205",
- "207.180.226.204",
- "etc"
- "ip6": [
- "2001:4860:4000::/36",
- "2404:6800:4000::/36",
- "etc"
- "fromA": [ ],
- "fromMx": [ ]
- "summary": {
- "totalDnsMechanismLookupsUsed": 10,
- "finalProcessingResult": "PERMERROR",
- "evaluationLog": [ ]
- "dmarcDetails": {
- "recordFound": true,
- "record": "v=DMARC1; p=none",
- "dnsQueryDomain": "_dmarc.openapi.com",
- "dnsServerUsed": "8.8.8.8",
- "policy": "none",
- "subdomainPolicy": null,
- "alignmentDkim": "r",
- "alignmentSpf": "r",
- "percentage": 100,
- "reportingUrisAggregate": [ ],
- "reportingUrisFailure": [ ],
- "failureOptions": [ ],
- "errors": [ ],
- "warnings": [ ]
- "createdAt": "2025-05-27T12:58:39+00:00",
- "updatedAt": "2025-05-27T12:58:40+00:00",
- "state": "NEW",
- "id": "6835b6fff6722090d00e74fb"
- "success": true,
- "message": "",
- "error": null