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.