Overview
The Properties from Criteria endpoint (POST /v1/properties) is how you search PropertyRadar's property and owner data through the API. You send a list of search criteria, and it returns the matching properties with the fields you ask for.
It uses the same 250+ criteria you see in the PropertyRadar app, so any search you can build in the app, you can run from your own code, CRM, or automation. This article covers the basics: authenticating, building criteria, previewing a search for free, and pulling records.
Before you start
You need a paid PropertyRadar subscription (Solo, Team or Business) and an API token.
Log in to PropertyRadar, click your profile icon, and choose Account Settings.
Back in Account Settings, scroll to the bottom and click the API key's Integration Name to reveal your token.
Send the token as a bearer token in the Authorization header on every request:
Authorization: Bearer <YOUR_API_TOKEN>
Treat your token like a password. Don't paste it into shared documents, screenshots, or code you commit to a repository.
Making your first request
A search is a POST to https://api.propertyradar.com/v1/properties. Options go in the query string, and your criteria go in a JSON body. Example parameters:
Query parameter | Required | What it does |
| Yes |
|
| No | Fields or fieldsets to return, comma-separated (for example |
| No | Maximum number of records to return |
This example previews off-market single-family homes in two Portland ZIP codes:
curl -X POST "https://api.propertyradar.com/v1/properties?Purchase=0&Limit=1" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "Criteria": [ { "name": "ZipFive", "value": [97202, 97212] }, { "name": "PropertyType", "value": [ { "name": "PType", "value": ["SFR"] } ] }, { "name": "isListedForSale", "value": [0] } ] }'The response tells you how big your search is before you spend anything:
{ "results": [ ... ], "resultCount": 1, "totalResultCount": 4182, "totalCost": "0.00", "quantityFreeRemaining": 250 }
totalResultCount is the total number of matching properties.
resultCount is how many came back in this response. (Numbers above are illustrative.)
To try requests without writing code, open the endpoint in the API Reference, click Try It, paste your token into Bearer Token on the Security tab, and fill in the parameters and body.
Building criteria
Criteria is an array of objects, each with a name and a value. A property must match every criterion in the array. The shape of value depends on the criterion:
Type | Format | Example |
List of values (matches any) | Array of values |
|
Yes/no |
|
|
Range | Nested array |
|
Property type | Nested criterion inside |
|
This example finds single-family homes in two ZIP codes with a pool and at least $100,000 of equity:
{ "Criteria": [ { "name": "ZipFive", "value": [97202, 97212] }, { "name": "PropertyType", "value": [ { "name": "PType", "value": ["SFR"] } ] }, { "name": "Pool", "value": [1] }, { "name": "AvailableEquity", "value": [[100000, null]] } ] }A few commonly used criteria:
Criterion | Use it to find | Example value |
| Properties in a county (FIPS code) |
|
| Equity as a percent of value |
|
| Estimated value range |
|
| On or off the market |
|
| Owner-occupied homes |
|
| Absentee-owned homes |
|
| Preforeclosure or auction |
|
| Age of the home |
|
For the full list of 250+ criteria and their exact formats, see Understanding Criteria and the Criteria Reference. Use criteria names exactly as they appear there.
Preview first, then purchase
Every search needs the Purchase parameter, and it decides whether the request costs anything.
Purchase=0(preview): returns the match count and estimated cost without charging your account. Use it to test and refine criteria.Purchase=1(purchase): returns full records. Each record returned counts against your account's included exports or balance, per your subscription. Purchases are non-refundable.RadarID only: a request with
Fields=RadarIDis never charged, whateverPurchaseis set to. This is useful when you only need IDs to pass to other endpoints or a list.
If your balance can't cover a purchase, the API returns 402 Insufficient Balance.
Choosing fields and paging
Use Fields to control what comes back. You can name individual fields (Fields=RadarID,Address,City,AVM) or a fieldset:
Fieldset | Returns |
| A compact row per property: type, address, beds, baths, value, equity, owner |
| A summary of the property, owner, value, and scores |
| Layouts matching those views in the app |
| The fields from each tab of a property's detail page |
| Default Fieldset with most fields |
For large result sets, page with Limit and Start. For example, Limit=500&Start=0 returns records 1–500, then Start=500 returns 501–1000. Keep Limit small while testing so a mistake doesn't purchase more records than you intended.
Troubleshooting
Response | What it usually means |
| The token is missing, mistyped, or not sent as |
| A criterion name or value format is wrong. The |
| Your account can't cover the purchase. Preview with |
Related resources
API Reference — other endpoints, including property details, owners, comps, and lists