Skip to main content

Searching using the API

Run PropertyRadar searches from your own code using the API

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.

  1. Log in to PropertyRadar, click your profile icon, and choose Account Settings.

  2. 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

Purchase

Yes

0 previews the search for free; 1 returns full records and charges your account

Fields

No

Fields or fieldsets to return, comma-separated (for example Overview) you want returned. Prefix a field with - to leave it out

Limit

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

{ "name": "ZipFive", "value": [97202, 97212] }

Yes/no

[1] for yes, [0] for no

{ "name": "inForeclosure", "value": [1] }

Range

Nested array [[min, max]]; use null for no limit

{ "name": "AvailableEquity", "value": [[100000, null]] }

Property type

Nested criterion inside value

{ "name": "PropertyType", "value": [ { "name": "PType", "value": ["SFR"] } ] }

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

County

Properties in a county (FIPS code)

["06019"]

EquityPercent

Equity as a percent of value

[[40, 100]]

AVM

Estimated value range

[[300000, 450000]]

isListedForSale

On or off the market

[0] (off-market)

isSameMailingOrExempt

Owner-occupied homes

[1]

isNotSameMailingOrExempt

Absentee-owned homes

[1]

ForeclosureStage

Preforeclosure or auction

["Preforeclosure", "Auction"]

YearBuilt

Age of the home

[[1980, null]]

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=RadarID is never charged, whatever Purchase is 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

Grid

A compact row per property: type, address, beds, baths, value, equity, owner

Overview

A summary of the property, owner, value, and scores

Card, Map, Mobile

Layouts matching those views in the app

PropertyTab, TransactionsTab, ListingsTab, ValueTab

The fields from each tab of a property's detail page

All

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

401 / auth error

The token is missing, mistyped, or not sent as Authorization: Bearer ...

400 Bad Request

A criterion name or value format is wrong. The message field explains which; check it against the Criteria Reference

402 Insufficient Balance

Your account can't cover the purchase. Preview with Purchase=0 to see the cost

Related resources

Did this answer your question?