Skip to main content
Version: 13.x (Current)

Digital Footprints Analytics Template

Digital Footprints Analytics Template is the best template to start creating a service in Kotlin, integrated with Trustfull APIs. The template comes with a set of APIs already integrated with Trustfull systems.

GET - /ping

This API performs a get request to Trustfull system to check if the user is authenticated correctly. Client information is given by the environment variables APIKEY. The service calls the Trustfull API and returns its response.

GET - /{customerId}

This API allows to retrieve a user that was previously data enriched/valuated or validated.

Request

The caller must provide the path parameter customerId with the Id of the user performing the request.

POST - /phone

This API allows to combine phone validation, data enrichment of a user through the phone number.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"phone_number": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as item the value phone

Response

The service replies with the information regarding the user using only the phone number.

Example:

{
"resolution_id": "...",
"customer_id":"...",
"device_request_time":"...",
"webhook_url": "...",
"claims": [
"phone"
],
"phone": {
"value": "phone number",
"type": "mobile",
"status": "connected",
"is_valid": true,
"country": "US",
"is_ported": true,
"original_network": "T-Mobile",
"current_network": "Verizon",
"is_roaming": false,
"has_whatsapp": true,
"whatsapp_privacy_status": "public",
"whatsapp_image": "url of image",
"number_type": "MOBILE",
"has_telegram":true,
"telegram_privacy_status":"public",
"telegram_image":"url of image",
"has_amazon": true,
"has_google": true,
"has_instagram": true,
"has_office365": true,
"has_facebook": true,
"has_linkedin": true,
"has_twitter": true,
"first_name": "Peter",
"last_name": "Spark",
"birth_date": "03-01-2018",
"image_labels": "Dimples,99.999710083008|Head,99.999710083008|Face,99.999710083008|Person,99.999710083008|Smile,99.633117675781|Happy,99.633117675781|Man,99.616744995117|Adult,99.616744995117|Male,99.616744995117",
"face1_age_range": "34-42",
"face1_bounding_box": "0.63215327262878,0.59771698713303,0.15187250077724,0.25094643235207",
"face1_celebrity_name": "Bruce Dickinson",
"face1_is_celebrity": true,
"face1_labels": "Smile,96.364311218262|Gender_Male,99.981483459473|EyesOpen,97.500930786133|MouthOpen,95.655265808105|EMOTION_HAPPY,99.15323638916",
"face2_age_range": "55-60",
"face2_bounding_box" : "1,2,3,4",
"face2_celebrity_name": "James Hetfield",
"face2_is_celebrity": true,
"face2_labels": "Smile,96.364311218262|Eyeglasses,97.697601318359|Gender_Male,99.981483459473|EyesOpen,97.500930786133|MouthOpen,95.655265808105|EMOTION_FEAR,99.15323638916",
"face3_age_range": "55-60",
"face3_bounding_box": "1,2,3,4",
"face3_celebrity_name": "Johan Hegg",
"face3_is_celebrity": true,
"face3_labels": "Smile,96.364311218262|Eyeglasses,97.697601318359|Gender_Male,99.981483459473|EyesOpen,97.500930786133|MouthOpen,95.655265808105|EMOTION_FEAR,99.15323638916",
"data_breaches_count": 3,
"data_breaches_first_breach": "2016-10-13",
"data_breaches_last_breach": "2023-01-01",
"data_breaches_list": "Databreach#1,2016-10-13|Databreach#2,2021-05-10|Databreach#3,2023-01-01",
"disposable_provider_name": "anonymsms.com",
"score": 649,
"score_cluster": "good"
}
}

POST - /email

This API allows to combine email validation, data enrichment of a user through the email address.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"webhook_url": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"email": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as item the value email

Response

The service replies with the information regarding the user using only the email address.

Example:

{
"resolution_id": "...",
"customer_id": "...",
"device_request_time": "...",
"webhook_url": "...",
"claims": [
"email"
],
"email": {
"value": "info@example.com",
"status": "deliverable",
"is_disposable": false,
"is_role": false,
"is_spamtrap": false,
"is_free": true,
"domain": "gmail.com",
"domain_mx_is_valid": true,
"domain_mx_provider": "google.com",
"domain_registrar": "MarkMonitor, Inc.",
"domain_registered_to": "Google LLC",
"has_twitter": true,
"has_amazon": true,
"has_linkedin": true,
"has_airbnb": true,
"has_apple": true,
"has_ebay": true,
"has_instagram": true,
"has_office365": true,
"has_dazn": true,
"has_spotify": true,
"has_deliveroo": true,
"has_hubspot": true,
"has_pinterest": true,
"has_wordpress": true,
"has_stop_words": true,
"has_facebook": true,
"has_linkedin": true,
"has_paypal": true,
"has_disney_plus": true,
"has_google": true,
"google_id": "000000000000000000000",
"google_profile_picture": "url of image",
"google_first_name": "Tony",
"google_last_name": "Stark",
"google_last_edit": "1684163935000",
"google_active_services_count": 3,
"google_active_services_list": "PHOTOS,MAPS,NEWS_360",
"google_reviews_count": 4,
"google_review_link": "some link",
"domain_website_exists": true,
"found_on_serp": true,
"first_name": "Tony",
"last_name": "Stark",
"education": "...",
"employment": "Philantropist",
"avatar": "image url",
"account_length": "10",
"account_dots_count": "1",
"account_numbers_count": "0",
"account_letters_count": "9",
"account_symbols_count": "1",
"account_vowels_count": "3",
"account_consonants_count": "6",
"account_dots_ratio": "0.1",
"account_numbers_ratio": "0.0",
"account_letters_ratio": "0.9",
"account_symbols_ratio": "0.1",
"account_vowels_ratio": "0.3",
"account_consonants_ratio": "0.6",
"score": 200,
"score_cluster": "very_low",
"contains_first_name": true,
"contains_last_name": true,
"parsed_first_name": "Tony",
"parsed_last_name": "Stark",
"parsed_name_is_valid": false,
"parsed_name_risk_type": "FICTIONAL",
"did_you_mean": "...",
"data_breaches_count": 3,
"data_breaches_first_breach": "2016-10-13",
"data_breaches_last_breach": "2023-01-01",
"data_breaches_list": "Databreach#1,2016-10-13|Databreach#2,2021-05-10|Databreach#3,2023-01-01",
"disposable_provider_name": "..."
}
}

POST - /device

This API allows to search for information on the user's hardware device through the user agent of the browser.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"user_agent": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as item the value device

Response

The service replies with the information regarding the user using only the device.

Example:

{
"resolution_id":"...",
"customer_id":"...",
"device_request_time":"...",
"webhook_url": "...",
"claims":[
"device"
],
"device":{
"value": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
"age": 2017,
"browser_name": "Chrome Mobile",
"browser_version": "...",
"camera": 16,
"is_recent": true,
"is_robot": false,
"category": "Mobile Phone",
"brand": "Brand name",
"model": "K10000 Pro",
"operating_system": "Android",
"price_cluster": "low",
"price_usd": "200",
"screen_size_height": 1920,
"screen_size_width": 1080,
"score": 649,
"score_cluster": "high"
}
}

POST - /ip

This API allows to combine ip address validation, data enrichment and scoring of a user through the ip address.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"ip": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as item the value ip

Response

The service replies with the information regarding the user using only the ip address.

Example:

{
"resolution_id":"...",
"customer_id":"...",
"device_request_time":"...",
"webhook_url": "...",
"claims":[
"ip"
],
"ip":{
"value": "ip_address_value",
"city": "Mountain View",
"connection_speed": "T1",
"connection_type": "Data Center / Web Hosting / Transit",
"country": "US",
"isp": "Google LLC",
"timezone": "America/Los_Angeles",
"request_time": "morning",
"zip": "94043",
"is_mobile": true,
"is_vpn": true,
"vpn_name": "VPN Provider",
"is_proxy": true,
"is_tor": true,
"is_relay": true,
"is_hosting": true,
"black_list_count": true,
"company_domain": "domain.com",
"company_name": "Google",
"company_description": "Company description",
"company_country": "US",
"company_facebook_url": "url",
"company_linkedin_url": "url",
"company_twitter_url": "url",
"company_industry": "information technology & services",
"company_employees": 100000,
"company_founded": 1991,
"company_annual_revenue": 2000000,
"company_total_funding": 20000000,
"company_tech_stack": "Route 53,Gmail,Google Apps,Amazon AWS,Apache,Mobile Friendly,WordPress.org,Nginx,Google Tag Manager,Google Font API",
"company_keywords": "regtech,identity verification,kyc,aml,credit scoring,online fraud prevention",
"company_logo": "https://zenprospect-production.s3.amazonaws.com/uploads/pictures/614ebaff41b79d00012fd54b/picture",
"score": 649,
"score_cluster": "high"
}
}

POST - /name

This API allows to combine name validation, data enrichment and scoring of a user through the first name and the last name.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"first_name": { "type": "string" },
"last_name": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as item the value name

Response

The service replies with the information regarding the user using only the name and last name.

Example:

{
"resolution_id":"...",
"customer_id":"...",
"device_request_time":"...",
"webhook_url": "...",
"claims":[
"name"
],
"name":{
"value": "John,Doe",
"gender": "M",
"is_valid": true,
"risk_type":"PLACEHOLDER",
"score": 649,
"score_cluster": "high"
}
}

POST - /

This API allows to combine multiple type of validation, data enrichment and scoring of a user in a single endpoint.

Request

The caller must provide a request body that matches the following schema:

{
"type": "object",
"properties": {
"customer_id": { "type": "string" },
"claims": {
"type": "array",
"items": {
"type": "string"
}
},
"first_name": { "type": "string" },
"last_name": { "type": "string" },
"webhook_url": { "type": "string" },
"phone_number": { "type": "string" },
"email": { "type": "string" },
"user_agent": { "type": "string" },
"ip": { "type": "string" }
}
}

where customer_id is the id of the user you are requesting information about. claims must have as items the all the possible values(name, email, phone, device, ip)

Response

The service replies with the information regarding the user using all the values inserted in the claims array.