Look up a public record
https://api.ruuster.com/v1/public-records/lookupOne US home's county record by address, parcel number or propertyId, whether or not it was ever on the MLS: parcel, building facts, tax and assessed value, AVM, last sale and the loans still open, plus owner names and mailing address with include=owner. A lookup call, one home at a time.
- Authentication:
x-api-keyandx-emailheaders of an owner or admin - Rate limit: lookup call, 20 per minute per key, within the 120 per minute
- Counts toward your brokerage's daily public record allowance (500 by default)
Finds one home in the county public records Ruuster licenses, in the US states your brokerage's MLSs cover (a home elsewhere returns 400 mls_not_in_scope, which doesn't count toward the allowance). It works for homes that have never been listed, which is most of the homes your clients own, and for any listing in your MLSs by its propertyId. To see every recorded deed and mortgage on the home, pass the recordId from here to Get a home's deed and mortgage history. To value a home with no MLS record, send the same recordId as subject.publicRecordId to Run a CMA.
This is a lookup call (20 per minute) and counts toward your brokerage's daily public record allowance (500 per day by default, shared with the history call). It answers one home per call: it's for looking up your clients' and leads' homes as you work them, not for building lists of homes or owners, which Ruuster's data license doesn't allow.
Send exactly one of address, parcelNumber (with postalCode) or propertyId. An address needs the house number, the street and the 5-digit zip; a unit (#4B, Unit 4B, Apt 4B) at the end of the street line picks one unit in a building. A parcel number is matched within its zip, ignoring dashes, dots and spaces.
County records arrive in periodic loads and run about two months behind recording, so a recent sale or refinance may not show yet; record.asOf is the date of the load. They aren't a title, vesting or encumbrance report. record.loans counts only the loans still open: a loan whose release was recorded, or that a later refinance paid off, is left out even when the county still lists it.
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
address |
string | The home's street address with its 5-digit zip, for example 6104 Oak Forest Rd, Edmond, OK 73025 |
|
parcelNumber |
string | Instead of address: the county parcel number (APN). Needs postalCode |
|
postalCode |
string | With parcelNumber: the home's 5-digit zip |
|
propertyId |
string | Instead of address: a listing's propertyId in one of your MLSs. Its address, and its parcel number when the MLS has one, find the county record |
|
include |
string | owner adds record.owner: the owners' names, their mailing address and whether they live there |
Response
data.found is false, with data.record null, when the county has no record that matches; that's still a 200 and still counts toward the daily allowance. data.resolvedBy says which parameter found it, and data.propertyId echoes the listing when you sent one.
data.record:
| Field | Description |
|---|---|
recordId |
The county record's id: pass it to the history call or to a CMA as subject.publicRecordId |
parcelNumber, address, unit, city, state, postalCode, lat, lng |
Where the home is |
propertySubType, bedrooms, bathrooms, livingArea, lotSizeAcres, yearBuilt, yearBuiltEffective, stories, garageSpaces, pool, basement, condition |
Building facts as the assessor records them |
tax |
year, annualAmount, assessedYear, assessedValue, marketValue |
lastSale |
The last recorded transfer: price (null when the county doesn't disclose prices), recordingDate, documentType |
occupancy |
owner when the owner's mailing address is the home, absentee otherwise |
loans |
totalOriginal, estimatedBalance and the open first and second liens |
avm |
Automated valuation: value, low, high, confidence (0 to 100), asOf |
asOf |
When the county record was loaded |
owner |
Only with include=owner: names (people, or a trust or company's name), mailingAddress, careOf, occupancy |
meta.notice repeats the limits of the data. Owner details may not be used to contact anyone who has asked not to be solicited.