NameAPI is a web API
to handle people's names
in your software.

News

15.12.2025

Detecting What Isn’t a Name: Salutations in International Data

Salutations often appear in name fields, even though they are not part of the actual name....


25.11.2025

Dictionary Update: Danish Names

NameAPI has expanded its Nordic coverage with 2,600 given names and 8,600 family names, capturing...


05.11.2025

Verification of Payee (VoP) with NameMatcher

NameAPI is introducing Verification of Payee (VoP) powered by NameMatcher, enabling fast, accurate...


30.10.2025

Software Version 11.0.0 Deployed

Release of Optimaize PII Platform with Java 21.


29.09.2025

Dictionary Update: Quechua and Aymara Names

The NameAPI database continues to grow, now enriched with 3,700 new given names and 600 family...


   

Risk Detector


       
Detects various types of possibly fake data in person records. It performs checks on the person's name, email address, telephone number and address.
See also the Swagger specification.
                    
POST
       
application/json (you must set the content-type as http header)
       
We have integrated Swagger directly into our API.
Visit https://api.nameapi.org/rest/swagger-ui/.

   

Input

               
See Context.
   
{
  "context": {},
  "inputPerson": {
    "type" : "NaturalInputPerson",
    "emailAddresses": [
      {
        "type" : "EmailAddressImpl",
        "emailAddress": "[email protected]"
      }
    ],
    "correspondenceLanguage": "en",
    "addresses": [
      {
        "type" : "UseForAllAddressRelation",
        "address": {
           "type" : "StructuredAddress",
          "placeInfo": {
            "type" : "StructuredPlaceInfo",
            "locality": "Atlantis",
            "postalCode": "55555"
          },
          "streetInfo": {
            "type" : "StructuredStreetInfo",
            "streetName": "Hill road",
            "houseNumber": "72"
          }
        }
      }
    ],
    "telNumbers": [
      {
        "type" : "SimpleTelNumber",
        "fullNumber": "999 999 999"
      }
    ],
     "personName" : {
      "nameFields" : [ {
        "string" : "John",
        "fieldType" : "GIVENNAME"
      }, {
        "string" : "Doe",
        "fieldType" : "SURNAME"
      } ]
    }
  }
}
      
   

   

Output

        
An overall score considering all the detected risks and all the positive attributes of the record. Range [-1,1].
  • Range [-1,0) means no risks were detected and the record looks good.
  • 0 means no risks were detected, but also no positive attributes were found, the service can't tell for sure.
  • Range (0,1] means one or multiple risks were detected.
       
A list of all the detected risks. Sorted by severity having the worst come first.
See RiskDetectorResult.
   
{
  "score" : 1.0,
  "risks" : [ {
    "dataItem" : "EMAIL",
    "riskScore" : 1.0,
    "reason" : "Domain of email address '[email protected]' has a risk to be a placeholder.",
    "riskType" : [ "FakeRiskType", "OTHER" ]
  }, {
    "dataItem" : "EMAIL",
    "riskScore" : 1.0,
    "reason" : "Domain of email address '[email protected]' has a risk to contain placeholder.",
    "riskType" : [ "FakeRiskType", "PLACEHOLDER" ]
  }, {
    "dataItem" : "NAME",
    "riskScore" : 0.97,
    "riskType" : [ "FakeRiskType", "PLACEHOLDER" ]
  }, {
    "dataItem" : "TEL",
    "riskScore" : 0.7,
    "reason" : "Tel number '999 999 999' contains repeating patterns.",
    "riskType" : [ "FakeRiskType", "OTHER" ]
  }, {
    "dataItem" : "ADDRESS",
    "riskScore" : 0.6,
    "reason" : "Atlantis",
    "riskType" : [ "FakeRiskType", "FICTIONAL" ]
  }, {
    "dataItem" : "TEL",
    "riskScore" : 0.5,
    "reason" : "Tel number '999 999 999' is invalid.",
    "riskType" : [ "FakeRiskType", "INVALID" ]
  }, {
    "dataItem" : "TEL",
    "riskScore" : 0.5,
    "reason" : "Tel number '999 999 999' contains risky equal digit sequences.",
    "riskType" : [ "FakeRiskType", "OTHER" ]
  }, {
    "dataItem" : "ADDRESS",
    "riskScore" : 0.4,
    "reason" : "Postal code '55555' looks like a random typing.",
    "riskType" : [ "FakeRiskType", "RANDOM_TYPING" ]
  } ]
}