Introduction
The PrivacyAI API provides two major endpoints, for checking whether a website has personal information or for triggering a removal from a certain website. Both endpoints are asynchronous, and will send a result with a transactionId that will then be referenced in a subsequent webhook request.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "Authorization: apikey YOURAPIKEY"
const axios = require('axios');
let api = request.set('Authorization', 'apikey YOURAPIKEY');
Make sure to replace
YOURAPIKEY
with your API key.
PrivacyAI uses API keys to allow access to the API. You can request a new API key by contacting us. We expect the API key to be included in all API requests to the server in a header that looks like the following:
Authorization: apikey YOURAPIKEY
Scan
Scan a Website
curl "https://api.privacyai.com/api/scan"
-X POST
-H "Content-Type: application/json"
-H "Authorization: apikey YOURAPIKEY"
-d {
"site": "411locate",
"person": {
"firstName": "Hector",
"lastName": "Salamanca",
"age": "60",
"state": "NM",
"phone": "5554443333"
"email": "hector@lospolloshermanos.com"
}
}
const axios = require('axios');
const res = await request(app)
.post('/scan')
.set('Authorization', 'apikey YOURAPIKEYYOURAPIKEY')
.send({
person: {
firstName: 'Hector',
lastName: 'Salamanca',
age: '60',
state: 'NM',
phone: '5554443333',
email: 'hector@lospolloshermanos.com',
},
});
The above command returns JSON structured like this, which reports the scan has started.
{
"id": "YQyeOvgBIbgRvowMfUmA"
}
After a scan is successful or failed, your webhook will get a response in JSON.
{
"type": "scan",
"status": "SUCCESS",
"foundPII": true,
"site": "411locate",
"urls": [
"https://www.411locate.com/people-search/full/Hector-Salamanca--ca-age-60",
"https://www.411locate.com/reverse-phone/search/5554443333"
],
"transactionId": "YQyeOvgBIbgRvowMfUmA"
}
This endpoint will scan a supported provider
HTTP Request
POST https://api.privacyai.com/api/scan
Query Parameters
Parameter | Required | Description |
---|---|---|
site | true | A supported website to scan. |
person | true | A Person object to scan. |
Italicized parameters are optional, but strongly recommended as they provide better results
Site | Required Parameters |
---|---|
411locate | site, person { firstName, lastName, age, state, phone, email } |
addresses | site, person { firstName, middleName, lastName, address, city, state, phone } |
advancedBackgroundChecks | site, person { firstName, lastName, address, city, state, phone, age } |
advancedPeopleSearch | site, person { firstName, lastName, city, state } |
alarmsCalifornia | site, person { firstName, lastName } |
allAreaCodes | site, person { phone } |
allPeople | site, person { firstName, lastName, city, state } |
americaPhonebook | site, person { firstName, lastName, city, state, phone } |
anywho | site, person { firstName, middleName, lastName, city, state, zip } |
arivify | site, person { firstName, lastName, address, city, state } |
backgroundAlert | site, person { firstName, lastName, city, state, age } |
backgroundCheckRun | site, person { firstName, lastName, city, state } |
beenVerified | site, person { firstName, middleName, lastName, city, state, age } |
blockShopper | site, person { firstName, lastName, address, state } |
callTruth | site, person { phone } |
centeda | site, person { firstName, lastName, city, state, phone, age } |
checkPeople | site, person { firstName, middleName, lastName, city, state, age } |
checkThem | site, person { firstName, lastName, state, phone } |
clustrMaps | site, person { firstName, lastName, city, state } |
cyberBackgroundChecks | site, person { firstName, lastName, address, city, state, phone, email } |
familyTreeNow | site, person { firstName, lastName, city, state } |
fastPeopleSearch | site, person { firstName, middleName, lastName, address, city, state, phone } |
fastBackgroundCheck | site, person { firstName, lastName, address, city, state, phone } |
findAGrave | site, person { firstName, middleName, lastName, age } |
findLocalPeople | site, person { firstName, lastName, city, state } |
floridaProfilePages | site, person { firstName, lastName, address, city, state } |
freePeopleDirectory | site, person { firstName, middleName, lastName, city, state, age } |
fullNameDirectory | site, person { firstName, lastName, city, state, zip } |
goLookup | site, person { firstName, lastName, city, state, zip, phone } |
greyPages | site, person { phone } |
hpccUsa | site, person { firstName, lastName, city, state } |
idStrong | site, person { firstName, lastName, city, state, age } |
idTrue | site, person { firstName, middleName, lastName, city, state, age } |
infoTracer | site, person { firstName, lastName, address, city, state, phone } |
instantCheckmate | site, person { firstName, middleName, lastName, city, state, age } |
instantPeopleFinder | site, person { firstName, lastName, state } |
inteligator | site, person { firstName, lastName, state } |
intelius | site, person { firstName, middleName, lastName, city, state, age } |
kiwiSearch | site, person { firstName, lastName, state, phone } |
legacy | site, person { firstName, lastName, state } |
myLife | site, person { firstName, lastName, address, city, state, zip, phone } |
neighborReport | site, person { firstName, lastName, city, state, phone } |
number2Name | site, person { firstName, lastName, phone } |
numberGuru | site, person { phone, state } |
okCaller | site, person { firstName, lastName, phone } |
onlineSearches | site, person { firstName, lastName, city, state } |
openPublicRecords | site, person { firstName, middleName, lastName, city, state, age } |
peekYou | site, person { firstName, lastName, city, state } |
peopleBackgroundCheck | site, person { firstName, lastName, city, state } |
peopleByName | site, person { firstName, middleName, lastName, city, state, phone } |
peopleByPhone | site, person { phone } |
peopleFinders | site, person { firstName, middleName, lastName, city, state, age } |
peopleLooker | site, person { firstName, middleName, lastName, city, state, age } |
peopleLookup | site, person { firstName, lastName, city, state } |
peopleSearchNow | site, person { firstName, middleName, lastName, city, state, age } |
peopleSmart | site, person { firstName, middleName, lastName, city, state, age } |
peopleWhiz | site, person { firstName, lastName, city, state, age } |
persopo | site, person { firstName, lastName, state } |
phonebooks | site, person { firstName, lastName, city, state, phone } |
phoneOwner | site, person {firstName, lastName, phone } |
privateEye | site, person { firstName, middleName, lastName, city, state, age } |
publicDataCheck | site, person { firstName, lastName, city, state } |
publicDataDigger | site, person { firstName, lastName, address, city, state, zip } |
publicRecords360 | site, person { firstName, middleName, lastName, age, state, city } |
publicRecordsDirectory | site, person { firstName, lastName } |
publicRecordsNow | site, person { firstName, middleName, lastName, city, state, age } |
quickPeopleTrace | site, person { firstName, lastName, city, state } |
radaris | site, person { firstName, lastName, city, state, phone } |
rehold | site, person { firstName, lastName, address, city, state } |
revealName | site, person { phone } |
reverseCallerDatabase | site, person { phone } |
searchMobileNumber | site, person { phone } |
searchPeopleFree | site, person { firstName, middleName, lastName, city, state, age } |
searchPublicRecords | site, person { firstName, lastName, city, state } |
searchQuarry | site, person { firstName, lastName, city, state, age } |
securePublicRecords | site, person { firstName, lastName, state, age } |
smartBackgroundChecks | site, person { firstName, lastName, address, city, state, phone } |
spokeo | site, person { firstName, middleName, lastName, age, city, state, phone } |
spyFly | site, person { firstName, lastName, city, state } |
spyLookup | site, person { firstName, lastName, state } |
spyTox | site, person { firstName, lastName, city, state } |
stateRecords | site, person { firstName, lastName, city, state } |
telephoneDirectories | site, person { phone } |
thatsThem | site, person { firstName, lastName, city, state, address, phone } |
theIdentityPages | site, person { firstName, lastName } |
truePeopleSearch | site, person { firstName, middleName, lastName, city, state, zip, age } |
truthFinder | site, person { firstName, middleName, lastName, city, state, age } |
unitedStatesPhoneBook | site, person { firstName, lastName, city, state, phone } |
unknownPhone | site, person { phone } |
usaPeopleSearch | site, person { firstName, lastName, age, address, city, state, phone } |
usaProfilePages | site, person { firstName, lastName, address, city, state } |
usaTrace | site, person { firstName, lastName, city, state } |
usPhonebook | site, person { firstName, lastName, phone } |
usSearch | site, person { firstName, middleName, lastName, city, state, age, phone } |
veripages | site, person { firstName, lastName, city, state } |
verispy | site, person { firstName, lastName, state, phone } |
voterRecords | site, person { firstName, lastName, city, state } |
whitepagesPremium | site, person { firstName, middleName, lastName, city, state, age } |
xlek | site, person { firstName, lastName, state } |
yasni | site, person {firstName, lastName } |
yellowbook | site, person { firstName, lastName, city, state } |
yellowpages | site, person { firstName, lastName, city, state, address, phone } |
zabaSearch | site, person { firstName, middleName, lastName, city, state, age, phone } |
Remove
Schedule a website for Removal
curl "https://api.privacyai.com/api/remove"
-X POST
-H "Content-Type: application/json"
-H "Authorization: apikey YOURAPIKEY"
-d {
"site": "addresses",
"person": {
"firstName": "Hector",
"lastName": "Salamanca",
"state": "NM",
"phone": "5554443333"
"email": "hector@lospolloshermanos.com"
}
}
const axios = require('axios');
const res = await request(app)
.post('/remove')
.set('Authorization', 'apikey YOURAPIKEYYOURAPIKEY')
.send({
person: {
firstName: 'Hector',
lastName: 'Salamanca',
state: 'NM',
phone: '5554443333',
email: 'hector@lospolloshermanos.com',
},
});
The above command returns JSON structured like this, which reports the scan has started.
{
"id": "YQyeOvgBIbgRvowMfUmA"
}
After a remove is successful or failed, your webhook will get a response in JSON. Please note that certain removals may contain clues about what is needed for a successful scan.
{
"type": "remove",
"status": "FAILURE",
"site": "addresses",
"errors": ["Missing required argument: phone"],
"transactionId": "YQyeOvgBIbgRvowMfUmA"
}
This endpoint will scan a supported provider
HTTP Request
POST https://api.privacyai.com/api/remove
Query Parameters
Italicized parameters are optional, but strongly recommended as they provide better results
Site | Required Parameters |
---|---|
americaPhonebook | site, person { phone, zip } |
backgroundCheckRun | site, person { firstName, lastName, city, state, email } |
beenVerified | site, person { firstName, middleName, lastName, city, state, age, email } |
checkPeople | site, person { firstName, middleName, lastName, city, state, age, email } |
fastPeopleSearch | site, person { firstName, middleName, lastName, address, city, state, age, phone, email } |
findLocalPeople | site, person { firstName, lastName, city, state, email } |
hpccUsa | site, person { firstName, lastName, city, state, email } |
idTrue | site, person { firstName, middleName, lastName, city, state, age, email } |
infoTracer | site, person { firstName, middleName, lastName, city, state, age, email } |
instantCheckmate | site, person { firstName, middleName, lastName, city, state, age, email } |
intelius | site, person { firstName, middleName, lastName, city, state, age, email } |
openPublicRecords | site, person { firstName, middleName, lastName, city, state, email } |
peopleByName | site, person { firstName, middleName, lastName, city, state, phone, email } |
peopleFinders | site, person { firstName, middleName, lastName, city, state, age, email } |
peopleSearchNow | site, person { firstName, lastName, city, state, age } |
privateEye | site, person { firstName, lastName, city, state } |
publicRecordsNow | site, person { firstName, lastName, city, state } |
radaris | site, person { firstName, lastName, city, state, age, email } |
searchPublicRecords | site, person { firstName, lastName, address, city, state, zip, age, email } |
spokeo | site, person { firstName, lastName, address, city, state, phone, email } |
thatsThem | site, person { firstName, lastName, address, city, state, zip, email, phone } |
truePeopleSearch | site, person { firstName, lastName, city, state, zip, email } |
truthFinder | site, person { firstName, middleName, lastName, city, state, age, email } |
Shared Removals
In some cases, a website will share its data opt-out services with a parent or source website.
For example, removing data from the website People Looker can be performed by making a removal request to Been Verified with the appropriate request parameters listed in the table above. There is no need to make an additional request if the parent or source site already has a pending removal.
Parent Website | Child Website(s) |
---|---|
beenVerifed | peopleLooker, peopleSmart |
infoTracer | searchPeopleUsa |
intelius | addresses, anywho, publicRecords360, instantPeopleFinder, usSearch, zabaSearch |
spokeo | freePeopleDirectory |
Errors
The PrivacyAI API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
404 | Not Found -- The specificed scanner is not found |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |