Release Date: June 2026
We are excited to announce the launch of our new Reverse Skip Trace API endpoints. This powerful new feature allows you to identify persons and their associated property addresses by searching with phone numbers or email addresses.
Reverse Skip Trace is available to API tokens with the property-reverse-skip-trace-v3 ability. Contact our team to enable it for your account.
What's New
The Reverse Skip Trace API provides the opposite functionality of our traditional skip trace service. Instead of starting with a property address to find contact information, you can now start with contact information to find people and their properties. This opens up new possibilities for customer identification, lead qualification, and data enrichment workflows.
The API supports both synchronous and asynchronous processing modes to handle workloads of any size efficiently.
Owner-only filtering. The propertyOwnersOnly request option (default false) returns only persons whose propertyOwner flag is true. Persons with false or null are excluded. Ownership is evaluated against the property matched to each person's highest-ranked address. The filter runs before the 3-person limit, so it can surface an owner that an unfiltered search does not return.
Filtered results are not a subset of the unfiltered results.
Use Cases
Lead Qualification: Verify and enrich leads by identifying property ownership from contact information
Customer Identification: Match phone numbers or emails to property owners for verification
Data Enrichment: Append property information to existing contact records
Reverse Lookups: Identify who owns properties based on phone or email contacts
Portfolio Analysis: Connect contact information to property portfolios
Inputs Accepted
The Reverse Skip Trace API accepts the following inputs:
Phone number only: Search by phone to identify persons and their properties
Email address only: Search by email to identify persons and their properties
Both phone and email: The search returns persons who match either input, and the 3-person limit applies to that combined set, so a person who matches only one input can be left out. To search each input in full, send the phone and the email as separate items.
Each request can process up to 100 search items in batch mode. Each search returns up to 3 persons.
Each person includes their associated property when one can be matched to their highest-ranked address; a matched person can be returned without one.
Pricing
Reverse Skip Trace uses a per-match billing model - you're only charged for successful matches, not for searches that return no results.
Both Pay-As-You-Go (PAYG) and subscription tiers are available. For current pricing and tier details, please visit our pricing page:
Getting Started
To use the Reverse Skip Trace API:
Enable Access: Ensure your API token has the
property-reverse-skip-trace-v3ability enabledChoose Your Endpoint:
Synchronous:
POST /api/v3/property/reverse-skip-traceAsynchronous:
POST /api/v3/property/reverse-skip-trace/asyncFormat Your Request: Provide a phone number or an email address in each request item. To search both, send them as separate items.
Process Results: Each response includes matched persons with their contact details and associated properties
Example Request
{
"requests": [
{
"phone": "6025550142"
}
],
"options": {
"includeTCPABlacklistedPhones": true,
"dateFormat": "iso-date-time"
}
}
Example Response
Each matched person is returned with: - Name, broken into first, middle, last, and full - Phone numbers, each with its rank, type, carrier, and compliance flags - Email addresses, each with its rank and a deliverability testing flag - Contact addresses, ranked, which are contact addresses rather than property records - Associated property, when one can be matched to the highest-ranked address - Status flags for litigator and deceased
{
"status": {
"code": 200,
"text": "OK"
},
"result": {
"data": [
{
"input": {
"phone": "6025550142"
},
"persons": [
{
"propertyOwner": true,
"name": {
"first": "Jordan",
"middle": "A",
"last": "Rivera",
"full": "Jordan A Rivera"
},
"addresses": [
{
"rank": 1,
"fullAddress": "1234 Example St, Phoenix, AZ 85001",
"street": "1234 Example St",
"city": "Phoenix",
"state": "AZ",
"zip": "85001",
"addressValidity": "Valid",
"propertyMailingAddress": true
}
],
"phones": [
{
"rank": 1,
"number": "6025550142",
"type": "Mobile",
"carrier": "EXAMPLE WIRELESS",
"tested": true,
"reachable": true,
"dnc": false,
"tcpa": false
}
],
"emails": [
{
"rank": 1,
"email": "customer@example.com",
"tested": true
}
],
"litigator": false,
"deceased": false,
"property": {
"id": "e7b686ef77ee9ed06e9b30ef93ac6f86",
"address": {
"fullAddress": "1234 Example St, Phoenix, AZ 85001",
"street": "1234 Example St",
"city": "Phoenix",
"county": "Maricopa",
"state": "AZ",
"zip": "85001"
},
"mailingAddress": {
"fullAddress": "1234 Example St, Phoenix, AZ 85001",
"street": "1234 Example St",
"city": "Phoenix",
"county": "Maricopa",
"state": "AZ",
"zip": "85001"
},
"owners": [
{
"name": {
"first": "Jordan",
"middle": "A",
"last": "Rivera",
"full": "Rivera Jordan A"
}
}
]
}
},
{
"propertyOwner": null,
"name": {
"first": "Casey",
"last": "Nguyen",
"full": "Casey Nguyen"
},
"addresses": [
{
"rank": 1,
"fullAddress": "5678 Sample Ave, Phoenix, AZ 85003",
"street": "5678 Sample Ave",
"city": "Phoenix",
"state": "AZ",
"zip": "85003",
"addressValidity": "Valid",
"propertyMailingAddress": false
}
],
"phones": [
{
"rank": 1,
"number": "6025550187",
"type": "Land Line",
"tested": false,
"reachable": false,
"dnc": false,
"tcpa": false
}
],
"emails": [],
"litigator": false,
"deceased": false,
"property": null
}
],
"meta": {
"matched": true,
"error": false,
"errorMessage": ""
}
}
],
"meta": {
"apiVersion": "6.79.0",
"results": {
"requestCount": 1,
"matchCount": 1,
"noMatchCount": 0
}
}
}
}
The second person above shows the conditional case: no property could be matched to their highest-ranked address, so property is absent and propertyOwner is null.
What the propertyOwner Flag Means
Whether this person's name matches an owner of record on the property in this person's property field. Reverse skip trace returns the person's known contact addresses, ranked. These addresses are not property records. The API attempts to match only the highest-ranked address to a property record. When that match succeeds, propertyOwner reports whether this person's name matches an owner of record on that property.
true means the name matched an owner of record on that property. A name match is not proof of legal ownership, and relatives who share a name can both report true on the same property. false means owner names were available for comparison on that property and none matched. false can occur for a genuine owner: when the owner record uses a different given name (for example Bob for Robert), when a recent sale is not yet reflected in the owner record, or when the highest-ranked address is out of date. A different surname alone, such as a maiden or married name, is usually reconciled when the alternate name is on file, but not always. null, or an absent field, means ownership could not be evaluated: no property could be matched to the highest-ranked address, the property record lists no owner names, or every owner name belongs to a trust, a company, or a similar entity, even when the entity is named after that person. Treat an absent flag as unconfirmed, not as a non-owner.
Ownership is evaluated only at the highest-ranked address. This flag says nothing about property the person may own at any other address.
API Reference Link
For complete API documentation including request/response schemas, error codes, and additional examples, please visit our developer documentation at:
Support
If you have any questions or need assistance getting started with the Reverse Skip Trace API, please contact our support team at support@batchdata.com or through the in-app chat.
We're excited to see how you leverage this new capability to enhance your workflows and look forward to your feedback!
