Enrich several properties with owner contact info in one request
Looks up owner contact information for up to 50 properties in a single synchronous request. Each id is resolved independently and returned in the results array with its own status — a bad id never fails the batch. Each match debits one credit; cache hits and no-matches are free. Every ok item also carries property — the parcel's Community Lending neighborhood profile and mortgage party rosters. For larger sets use the asynchronous bulk job.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/properties/enrich" \ -H "Content-Type: application/json" \ -d '{ "propertyIds": [ "string" ] }'{
"results": [
{
"alternates": [
"string"
],
"balance": 0,
"cached": true,
"charged": true,
"code": "not_found",
"data": {
"enrichedAt": "string",
"persons": [
{
"death": {
"deceased": true,
"property1": null,
"property2": null
},
"dnc": {
"tcpa": true,
"property1": null,
"property2": null
},
"emails": [
{
"email": "string",
"tested": true
}
],
"litigator": true,
"mailingAddress": {
"addressValidity": "string",
"city": "string",
"county": "string",
"formattedStreet": "string",
"hash": "string",
"houseNumber": "string",
"state": "string",
"street": "string",
"streetNoUnit": "string",
"zip": "string",
"zipPlus4": "string",
"property1": null,
"property2": null
},
"meta": {
"error": "string",
"matched": true,
"property1": null,
"property2": null
},
"name": {
"first": "string",
"full": "string",
"last": "string",
"middle": "string"
},
"phoneNumbers": [
{
"carrier": "string",
"dnc": true,
"lastReportedDate": "string",
"number": "string",
"reachable": true,
"score": 0,
"tested": true,
"type": "string"
}
],
"propertyAddress": {
"addressValidity": "string",
"city": "string",
"county": "string",
"formattedStreet": "string",
"hash": "string",
"houseNumber": "string",
"state": "string",
"street": "string",
"streetNoUnit": "string",
"zip": "string",
"zipPlus4": "string",
"property1": null,
"property2": null
},
"property1": null,
"property2": null
}
],
"source": "string"
},
"property": {
"communityLending": {
"affordableHousingTract": true,
"difficultDevelopmentArea": true,
"distressedTract": true,
"floodHazardTract": true,
"lowModIncomeTract": true,
"majorityMinorityTract": true,
"milesToCollege": 0,
"milesToSchool": 0,
"milesToWorship": 0,
"opportunityZone": true,
"ruralTract": true,
"tractApplications": 0,
"tractAsianPct": 0,
"tractBlackPct": 0,
"tractCountyCode": "string",
"tractDenialRate": 0,
"tractFamilyIncome": 0,
"tractFloodZone": "string",
"tractHispanicPct": 0,
"tractHomeownershipRate": 0,
"tractHouseholdIncome": 0,
"tractId": "string",
"tractIncomeLevel": "low",
"tractIncomeVsMetroPct": 0,
"tractLoanVolume": 0,
"tractMedianAge": 0,
"tractMedianHomeValue": 0,
"tractMinorityPct": 0,
"tractOriginations": 0,
"tractPopulation": 0,
"tractPovertyRate": 0,
"tractRuralGradient": 0,
"tractStateCode": "string",
"tractWhiteNonHispanicPct": 0,
"usdaEligibleTract": true
},
"parties": {
"active": {
"brokers": [
"string"
],
"companies": [
"string"
],
"lenders": [
"string"
],
"originators": [
"string"
]
},
"alltime": {
"brokers": [
"string"
],
"companies": [
"string"
],
"lenders": [
"string"
],
"originators": [
"string"
]
},
"last": {
"originators": [
"string"
]
},
"matched": {
"brokers": [
"string"
],
"companies": [
"string"
],
"lenders": [
"string"
],
"originators": [
"string"
]
}
}
},
"propertyId": "string",
"reason": "member_cache_hit",
"result": {
"error": 0,
"matched": 0,
"noMatch": 0,
"requested": 0
},
"status": "ok"
}
],
"summary": {
"charged": 0,
"failed": 0,
"requested": 0,
"succeeded": 0
}
}{
"error": "string"
}{
"error": "string"
}Count properties matching filters POST
Return the exact number of properties matching the given filters. Accepts the same request body as `listProperties` (pagination and sort are ignored). Use this when you only need a total; to get the matching properties themselves, send the same request body to `listProperties`.
Submit a bulk skip-trace job POST
Queues an ECS task that enriches up to 50000 properties. Returns 202 with a jobId; poll `GET /v1/properties/enrich-bulk/{jobId}` or subscribe to the `enrichment.bulk.*` EventBridge / webhook events for completion.