Using Postman

This guide will walk you through how to use the Chrome Postman extension. It’s a great tool to demonstrate how query via HTTP when developing with the Property Search Engine API. The Onboard team uses Postman internally as part of our testing suite.

Postman helps you be more efficient by allowing you to construct complex HTTP requests quickly, organize them in collections and share them. As always, if you have any questions, feel free to email us at product@onboardinformatics.com.

Install Postman

Postman is a Chrome App. This means that Postman can only run on the Chrome browser. To use Postman, you will first need to install Google Chrome. If you already have Chrome installed, head over to the Postman website which provides a link to the Chrome web store where you can download and add the Postman Chrome extension. The Postman website also includes documentation and feature of the app if you’re not familiar.



Once Postman has been added to your browser, we can use the Postman interface to make calls to the Property Search Engine API.

Get your API Key

You’ll need to include your API Key in the header in order for your requests to work. You can find your API Key under the Registered Apps tab once you’ve logged into the developer platform.



Using Postman

Use Case 1: Allow a user to view all properties within a radius of a particular point.

In this example I will be using the /property resource and the /snapshot package and adding latitude, longitude and radius parameters. The APIs endpoint structure is:

https://search.onboard-apis.com/propertyapi/v1.0.0/RESOURCE/PACKAGE?{parameters}

The request will look like this:

https://search.onboard-apis.com/propertyapi/v1.0.0/property/snapshot?latitude=39.7047&longitude=-105.0814&radius=2


Here is some of the JSON response:

{
  "status": {
    "version": "1.0.0",
    "code": 0,
    "msg": "SuccessWithResult",
    "total": 10000,
    "page": 1,
    "pagesize": 10
  },
  "property": [
    {
      "identifier": {
        "obPropId": 2271335808059,
        "fips": "08059",
        "apn": "067436",
        "apnOrig": "067436"
      },
      "lot": {
        "lotSize1": 0.1998
      },
      "address": {
        "country": "US",
        "countrySubd": "CO",
        "line1": "2178 S DUDLEY ST",
        "line2": "LAKEWOOD, CO 80227",
        "locality": "Lakewood",
        "matchCode": "ExaStr",
        "oneLine": "2178 S DUDLEY ST, LAKEWOOD, CO 80227",
        "postal1": "80227",
        "postal2": "2318",
        "postal3": "C012"
      },
      "location": {
        "accuracy": "Street",
        "elevation": 0,
        "latitude": "39.677396",
        "longitude": "-105.094016",
        "distance": 2,
        "geoid": "PL0843000,SD67692,SS154407,SS174645,SS203256"
      },
      "summary": {
        "propclass": "Single Family Residence / Townhouse",
        "proptype": "SFR",
        "yearbuilt": 1967,
        "propLandUse": "SFR"
      },
      "building": {
        "size": {
          "universalsize": 1540
        },
        "rooms": {
          "bathstotal": 3,
          "beds": 4
        }
      },
      "vintage": {
        "lastModified": "2015-4-3",
        "pubDate": "2015-5-9"
      }
    },
                              

You’ll notice above, that pagesize= 10. This is the default but can be changed by adding a page size parameter to the end of your request.

https://search.onboard-apis.com/propertyapi/v1.0.0/property/snapshot?latitude=39.7047&longitude=-105.0814&radius=2&pagesize=50
                              

Now, let’s dig deeper into a specific property.

Use Case 2: Allow a user to see all characteristics of a specific property.

We’ll still be using the /property resource but will now use the /detail package and grabbing the “obPropId” from our previous response.

https://search.onboard-apis.com/propertyapi/v1.0.0/property/detail?ID=2276838208059

Your JSON response should look similar to this:

{
  "status": {
    "version": "1.0.0",
    "code": 0,
    "msg": "SuccessWithResult",
    "total": 1,
    "page": 1,
    "pagesize": 10
  },
  "property": [
    {
      "identifier": {
        "obPropId": 2276838208059,
        "fips": "08059",
        "apn": "085894",
        "apnOrig": "085894"
      },
      "lot": {
        "depth": 0,
        "frontage": 0,
        "lotnum": "2",
        "lotsize1": 0.1856,
        "lotsize2": 8085
      },
      "area": {
        "blockNum": "4",
        "countrysecsubd": "Jefferson County",
        "countyuse1": "1112",
        "srvyRange": "69",
        "srvySection": "25",
        "srvyTownship": "04",
        "subdname": "LAKEWOOD ESTATES FLG 1",
        "taxcodearea": "7015"
      },
      "address": {
        "country": "US",
        "countrySubd": "CO",
        "line1": "2008 S GRAY DR",
        "line2": "LAKEWOOD, CO 80227",
        "locality": "Lakewood",
        "matchCode": "ExaStr",
        "oneLine": "2008 S GRAY DR, LAKEWOOD, CO 80227",
        "postal1": "80227",
        "postal2": "2504",
        "postal3": "C009"
      },
      "location": {
        "accuracy": "Street",
        "elevation": 0,
        "latitude": "39.680203",
        "longitude": "-105.061333",
        "distance": 0,
        "geoid": "NH00000180,NH00018168,PL0843000,SD67692,SS153869,SS153895,SS153896"
      },
      "summary": {
        "absenteeInd": "OWNER OCCUPIED",
        "propclass": "Single Family Residence / Townhouse",
        "proptype": "SFR",
        "yearbuilt": 1982,
        "propLandUse": "SFR"
      },
      "utilities": {
        "coolingtype": "AC.CENTRAL",
        "sewertype": "Type Unknown"
      },
      "building": {
        "size": {
          "bldgsize": 4321,
          "grosssize": 0,
          "grosssizeadjusted": 3892,
          "groundfloorsize": 1421,
          "livingsize": 2579,
          "sizeInd": "LIVING SQFT ",
          "universalsize": 2579
        },
        "rooms": {
          "bathfixtures": 0,
          "baths1qtr": 0,
          "baths3qtr": 1,
          "bathscalc": 3,
          "bathsfull": 2,
          "bathshalf": 1,
          "bathstotal": 3,
          "beds": 4,
          "roomsTotal": 0
        },
        "interior": {
          "bsmtsize": 1313,
          "fplccount": 1,
          "fplcind": "Y",
          "fplctype": "TYPE UNKNOWN"
        },
        "construction": {
          "constructiontype": "FRAME/MASONRY",
          "roofcover": "WOOD SHAKE/SHINGLE"
        },
        "parking": {
          "garagetype": "ATTACHED GARAGE",
          "prkgSize": 429,
          "prkgSpaces": "0",
          "prkgType": "ATTACHED GARAGE"
        },
        "summary": {
          "bldgsNum": 1,
          "bldgType": "RESIDENTIAL",
          "imprType": "TYPE UNKNOWN",
          "levels": 2,
          "quality": "GOOD",
          "storyDesc": "RESIDENTIAL",
          "unitsCount": "1",
          "yearbuilteffective": 1982
        }
      },
      "vintage": {
        "lastModified": "2015-4-3",
        "pubDate": "2015-5-9"
      }
    }
  ]
}
                              

There is a lot of detail in this response! The /detail package provides us with building characteristics such as: basement size, number of fireplaces, parking structure and even heating/cooling and water services available. Check out a full list of responses for each package.

Finally, let’s look at Use Case 3: View a property’s last assessment and tax liability.

We’ll access the /assessment resource to get this information. Our request will look like this:

https://search.onboard-apis.com/propertyapi/v1.0.0/assessment/detail?ID=2276838208059


Learn More

Create a Collection in Postman and add this request: https://www.getpostman.com/collections/4cd6b734b0e4b068fd1e to see additional HTTP requests.

The examples we’ve walked through can be used to build out property pages, giving end users detail at the house level. But, that’s just the beginning of what you can do, combined with Onboard’s other content, you can display lifestyle aspects and the cultural offerings of a property’s surrounding neighborhood, giving end users a complete picture of an area

What’s Next?

The Property Search Engine API is just the start; as we prioritize our roadmap, your feedback will have influence on future releases and content. Let us know what other data would be useful in the platform. Are there other topics you’d like to see covered in a Getting Started Guide? We want to know! You can reach our product team at product@onboardinformatics.com.We look forward to hearing from you!

Using cURL

This quickstart guide will take you through all the steps necessary to start accessing the API using cURL. As always, if you have any questions, feel free to email us at product@onboardinformatics.com

cURL Basics

cURL allows transfer of data across a variety of protocols and is widely used as a way to send data across websites, including things like API interactions. A GET request is the default request method used, and is pretty straightforward. In fact, all of the examples in this guide will be GET requests. Learn more about cURL here.

How to get your API Key

When you sign up for an account, you’re are automatically given trial access to our Property Search Engine API.

Log in to your Onboard account from the developer page.

/>

Once you’re logged in, click “Applications” from the Account menu.



You’ll find your API Key listed under Registered Apps.



Accessing Content

Now that you have your API Key, let’s start making some requests. The main endpoint for the property search engine API is:

https://search.onboard-apis.com/propertyapi/v1.0.0/RESOURCE/PACKAGE?{parameters}

All requests require the API Key be passed in the request header.

Let’s look at all of the properties and their estimated values within a particular city. Using cURL, we would execute this curl command:

curl -X GET --header "Accept: application/json" --header "apikey: YOUR_API_KEY" "https://search.onboard-apis.com/propertyapi/v1.0.0/property/snapshot?cityname=Los%20Angeles"

Notes:
/property is the resource, /snapshot is the package.
- A space character in the query string may be encoded as either "%20" or "+". You can use either, most people opt for "+" as it's more human readable and fewer bytes.

Your JSON response should look like this:

{
  "status": {
    "version": "1.0.0",
    "code": 0,
    "msg": "SuccessWithResult",
    "total": 10000,
    "page": 1,
    "pagesize": 10
  },
  "property": [
    {
      "identifier": {
        "obPropId": 1112184206037,
        "fips": "06037",
        "apn": "6148001075"
      },
      "lot": {
        "lotSize1": 0.1386
      },
      "address": {
        "country": "US",
        "countrySubd": "CA",
        "line1": "11650 ANTWERP AVE",
        "line2": "LOS ANGELES, CA 90059",
        "locality": "Los Angeles",
        "matchCode": "ExaStr",
        "oneLine": "11650 ANTWERP AVE, LOS ANGELES, CA 90059",
        "postal1": "90059",
        "postal2": "1821",
        "postal3": "C042"
      },
      "location": {
        "accuracy": "Street",
        "elevation": 0,
        "latitude": "33.927618",
        "longitude": "-118.248153",
        "distance": 0,
        "geoid": "NH00000852,NH00065164,PL0685614,SD66753,SS149938,SS150076"
      },
      "summary": {
        "propclass": "Condominium (residential)",
        "proptype": "CONDOMINIUM",
        "yearbuilt": 2001,
        "propLandUse": "CONDOMINIUM"
      },
      "building": {
        "size": {
          "universalsize": 1562
        },
        "rooms": {
          "bathstotal": 2,
          "beds": 3
        }
      },
      "vintage": {
        "lastModified": "2015-4-3",
        "pubDate": "2015-5-9"
      }
    },

Next, we may want to see the most recent property valuation for a specific property. There is an additional parameter in the request, the mailing address for the property. "line1" and "line2" are pulled from "address" in the previous response example. In cURL it will look like this:

curl -X GET --header "Accept: application/json" --header "apikey: YOUR_API_KEY" "https://search.onboard-apis.com/propertyapi/v1.0.0/avm/detail?address1=11650+ANTWERP+AVE&address2=LOS+ANGELES+CA"

Upon success, you’ll receive a JSON response that should look like this:

{
  "status": {
    "version": "1.0.0",
    "code": 0,
    "msg": "SuccessWithResult",
    "total": 1,
    "page": 1,
    "pagesize": 10
  },
  "property": [
    {
      "identifier": {
        "obPropId": 1112184206037,
        "fips": "06037",
        "apn": "6148001075"
      },
      "lot": {
        "depth": 0,
        "frontage": 0,
        "lotnum": "1",
        "lotsize1": 0.1386,
        "lotsize2": 6039
      },
      "area": {
        "countrysecsubd": "Los Angeles County",
        "countyuse1": "010C",
        "subdname": "PINES",
        "taxcodearea": "9753"
      },
      "address": {
        "country": "US",
        "countrySubd": "CA",
        "line1": "11650 ANTWERP AVE",
        "line2": "LOS ANGELES, CA 90059",
        "locality": "Los Angeles",
        "matchCode": "ExaStr",
        "oneLine": "11650 ANTWERP AVE, LOS ANGELES, CA 90059",
        "postal1": "90059",
        "postal2": "1821",
        "postal3": "C042"
      },
      "location": {
        "accuracy": "Street",
        "elevation": 0,
        "latitude": "33.927618",
        "longitude": "-118.248153",
        "distance": 0,
        "geoid": "NH00000852,NH00065164,PL0685614,SD66753,SS149938,SS150076"
      },
      "summary": {
        "absenteeInd": "OWNER OCCUPIED",
        "propclass": "Condominium (residential)",
        "proptype": "CONDOMINIUM",
        "yearbuilt": 2001,
        "propLandUse": "CONDOMINIUM"
      },
      "utilities": {
        "heatingtype": "CENTRAL"
      },
      "building": {
        "size": {
          "bldgsize": 0,
          "grosssize": 0,
          "grosssizeadjusted": 0,
          "groundfloorsize": 0,
          "livingsize": 1562,
          "sizeInd": "LIVING SQFT ",
          "universalsize": 1562
        },
        "rooms": {
          "bathfixtures": 0,
          "baths1qtr": 0,
          "baths3qtr": 0,
          "bathscalc": 2,
          "bathsfull": 2,
          "bathshalf": 0,
          "bathstotal": 2,
          "beds": 3,
          "roomsTotal": 0
        },
        "interior": {
          "bsmtsize": 0,
          "fplccount": 0
        },
        "construction": {},
        "parking": {
          "prkgSize": 0,
          "prkgSpaces": "0"
        },
        "summary": {
          "bldgsNum": 1,
          "levels": 0,
          "unitsCount": "1",
          "yearbuilteffective": 2001
        }
      },
      "vintage": {
        "lastModified": "2015-7-3",
        "pubDate": "2015-8-19"
      },
      "avm": {
        "eventDate": "2015-7-3",
        "amount": {
          "scr": 64,
          "value": 177193,
          "high": 225035,
          "low": 129351,
          "valueRange": 95684
        },
        "calculations": {
          "perSizeUnit": 11343.98,
          "ratioTaxAmt": 58.83,
          "ratioTaxValue": 0.78,
          "monthlyChgPct": 12.35,
          "monthlyChgValue": 19471

"rangePctOfValue": 54 } } } ] }

Since we now have a "geoid" available, let’s try looking at all of the properties and their last sale price within the neighborhood. This is accomplished through a simple GET request to the /sale resource:

curl -X GET --header "Accept: application/json" --header "apikey: YOUR_API_KEY" --header "accept: application/json" "https://search.onboard-apis.com/propertyapi/v1.0.0/sale/snapshot?geoid=NH00000852"

Note: You can find more information about the resources and packages available through the API here.

The response to this request will include additional details about the sale like; sale amount, type of sale, sale record date and document numbers.

{
  "status": {
    "version": "1.0.0",
    "code": 0,
    "msg": "SuccessWithResult",
    "total": 4867,
    "page": 1,
    "pagesize": 10
  },
"property": [
    {
"identifier": {
        "obPropId": 1332260706037,
        "fips": "06037",
        "apn": "6070002015",
        "apnOrig": "6070  002   015"
      },
      "lot": {
        "lotSize1": 0.2648
      },
      "sale": {
        "salesearchdate": "2015-6-18",
        "saleTransDate": "2015-6-18",
        "amount": {
          "saleamt": 525000,
          "salerecdate": "2015-6-26",
          "saledisclosuretype": 0,
          "saledoctype": "Arms Length Transaction",
          "saledocnum": "769449",
          "saletranstype": "Resale"
        },
        "calculation": {
          "priceperbed": 105000,
          "pricepersizeunit": 614
        }
      }
    },

Learn More

That’s just the beginning of what you can do with the Property Search Engine API. Check out the full documentation to find out about all of the other features of the API.

Email Support

Onboard is always here for you. Complete the form below to reach our customer support team.