👣 Social Footprint Plugin
Discover linked accounts across multiple platforms using email enumeration.
Social Footprint Plugin
What is this plugin for?
Our Social Footprint plugin allows you to discover linked accounts across multiple platforms using an email address. This is useful for:
- User verification: Validate that a user has a real digital presence
- Fraud detection: Identify suspicious accounts with no digital footprint
- User enrichment: Get additional information about your users (avatars, usernames, etc.)
The plugin checks 17+ platforms including Gravatar, GitHub, Spotify, Discord, Twitter, and more.
Usage
Once we have created and configured our API object, it is quite simple, we just need to execute the following code.
import DymoAPI from "dymo-api";
const dymo = new DymoAPI({
apiKey: "PRIVATE_TOKEN_HERE"
});
console.log(await dymo.isValidDataRaw({
email: "[email protected]",
plugins: ["socialFootprint"]
}));
Supported Platforms
| Platform | Category | Extracts Metadata |
|---|---|---|
| Gravatar | images | avatar, name, username, aboutMe, location, jobTitle, company |
| Duolingo | education | userId, username, name, avatar, learningLanguage, streak, totalXp |
| GitHub | coding | username, avatar, userId, profileUrl |
| Adobe | software | avatar, userId |
| Picsart | art | userId |
| Discord | social | - |
| social | - | |
| Spotify | music | - |
| Notion | productivity | - |
| social | - | |
| Patreon | social | - |
| Chess.com | gaming | - |
| Strava | fitness | - |
| Imgur | images | - |
| Flickr | images | - |
| Amazon | shopping | - |
| WordPress | blog | - |
Confidence Score
Each platform result includes a confidence score (0-100) indicating how certain we are that the account exists:
| Score | Meaning |
|---|---|
| 90-100 | Very high confidence - account definitely exists |
| 80-89 | High confidence - account very likely exists |
| 70-79 | Medium confidence - account probably exists |
| < 70 | Lower confidence - may need additional verification |
The confidence score is calculated based on:
- Base reliability of the platform's endpoint
- Whether metadata was successfully extracted (+5)
- Exact status code match (+3)
Examples
Basic Example
Response
Compatibility:
Email
{
url: {
valid: true,
fraud: false,
freeSubdomain: false,
customTLD: false,
url: "https://test.com/test",
domain: "test.com",
plugins: {}
},
email: {
valid: true,
fraud: false,
proxiedEmail: false,
freeSubdomain: false,
corporate: false,
email: "[email protected]",
realUser: "user",
didYouMean: null,
noReply: false,
customTLD: false,
domain: "gmail.com",
roleAccount: false,
plugins: {
socialFootprint: {
totalChecked: 17,
platforms: [
{
slug: "gravatar",
platform: "Gravatar",
category: "images",
confidence: 100,
metadata: {
avatar: "https://gravatar.com/avatar/...",
name: "John Doe",
username: "johndoe",
location: "San Francisco, CA"
}
},
{
slug: "github",
platform: "GitHub",
category: "coding",
confidence: 83,
metadata: {
username: "johndoe",
avatar: "https://avatars.githubusercontent.com/u/123456",
userId: "123456",
profileUrl: "https://github.com/johndoe"
}
},
{
slug: "spotify",
platform: "Spotify",
category: "music",
confidence: 93
}
]
}
}
},
phone: {
valid: true,
fraud: false, // Also for disposable data.
phone: "+34617509462",
prefix: "34",
number: "617509462",
lineType: "Unknown",
carrierInfo: {
carrierName: "Vodafone",
accuracy: 50,
carrierCountry: "Spain",
carrierCountryCode: "ES"
},
country: "Spain",
countryCode: "ES",
plugins: {}
},
domain: {
valid: true,
fraud: false,
freeSubdomain: false,
customTLD: false,
domain: "test.com",
plugins: {}
},
creditCard: {
valid: true,
fraud: false,
test: false,
type: "Mastercard",
creditCard: "5110929780543845",
plugins: {}
},
ip: {
valid: true,
type: "IPv4",
class: "A",
fraud: false,
ip: "52.94.236.248",
continent: "North America",
continentCode: "NA",
country: "United States",
countryCode: "US",
region: "VA",
regionName: "Virginia",
city: "Ashburn",
district: "",
zipCode: "20149",
lat: 39.0438,
lon: -77.4874,
timezone: "America/New_York",
offset: -18000,
currency: "USD",
isp: "Amazon.com, Inc.",
org: "Amazon Technologies Inc. (us-east-1)",
as: "AS16509 Amazon.com, Inc.",
asname: "AMAZON-02",
mobile: false,
vpn: true, // BETA - Also used to indicate that it comes from a Data Center.
proxy: false,
hosting: true,
plugins: {}
},
wallet: {
valid: true,
fraud: false,
wallet: "1a1zp1ep5qgefi2dmpttl5slmv7divfna",
type: "Bitcoin",
plugins: {}
},
userAgent: {
valid: true,
type: "browser",
clientSlug: "chrome",
clientName: "Chrome",
version: "138.0.0.0",
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
fraud: false,
bot: false,
info: "Chrome v138.0.0.0",
os: "Windows 10.0",
device: {
type: "Desktop",
brand: "Microsoft"
},
plugins: {}
},
iban: {
valid: true,
fraud: true,
iban: "ES8101825332130207315465",
bban: "01825332130207315465",
bic: "BBVAESMMXXX", // BETA
country: "Spain",
countryCode: "ES",
accountNumber: "0207315465",
branchIdentifier: "5332",
bankIdentifier: "0182",
plugins: {}
}
}
Response type
Use
platforms.length to determine if a user has a digital presence. Users with 0 platforms found may require additional verification.| Parameter | Type |
|---|---|
socialFootprint.totalChecked | Number |
socialFootprint.platforms | Array<Platform> |
Platform Object
| Parameter | Type | Description |
|---|---|---|
slug | String | Lowercase identifier (e.g., "gravatar", "github") |
platform | String | Display name (e.g., "Gravatar", "GitHub") |
category | String | Platform category (e.g., "images", "social", "coding") |
confidence | Number | Confidence score 0-100 |
metadata | Object | undefined | Additional data extracted (varies by platform) |