NAV Navbar
shell javascript python ruby

Introduction

Welcome to the Oda API! You can use our API to access Oda API endpoints, which can get comprehensive transaction data on properties in the US market.

We have language bindings in Shell. Python, JavaScript and Ruby is on the way! You can view code examples to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authorization

To authorize, use this code:

Coming Soon!
Coming Soon!
# With shell, you can just pass the correct header with each request
curl <API_ENDPOINT_HERE>
  -H "Authorization: Bearer <YOUR_API_KEY>" 
Coming Soon!

Oda uses API keys to allow access to the API. You can register a new Oda API key at our developer portal.

Oda expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: Bearer <YOUR_API_KEY>

When you generate your API key from the Oda API dashboard, you can make queries from the Query Maker tool without leaving the dashboard.

REST API

Property Level Queries

curl "https://demo.odaportal.com/api/property?parcel=0065059"
  -H "Authorization: Bearer <YOUR_API_KEY>"

curl "https://demo.odaportal.com/api/property?address=35+Chestnut+St"
  -H "Authorization: Bearer <YOUR_API_KEY>"

The above commands return JSON structured like this:

{
    "odaId": 888294001,
    "address": "35 Chestnut St",
    "sales_price": 527000,
    ...
    "last_sales_date": "2018-01-07"
  }

This endpoint retrieves a specific property.

HTTP Request

GET https://demo.odaportal.com/api/property/?<PARAMETER>=<PARAMATER_VALUE>

URL Available Parameters

Parameter Description
parcel The county PID or Parcel No of the property to retrieve
address Theaddress of the property to retrieve
id The ODA ID of the property to retrieve

Block Level Queries

curl "https://demo.odaportal.com/api/block?block=<BLOCK_STRING>"
  -H "Authorization: Bearer <YOUR_API_KEY>"

The above command returns JSON structured like this:

[
  {
    "id": 88829482,
    "address": "1925 Spring St",
    "sales_price": 480000,
    "last_sales_date": "2015-08-23"
  },
  ...

  {
    "id": 888294001,
    "address": "1700 Spring St",
    "sales_price": 527000,
    "last_sales_date": "2018-01-07"
  }
]

This endpoint retrieves all info from properties within the specified block.

HTTP Request

GET https://demo.odaportal.com/api/block?block=<BLOCK_STRING>

Query Parameters

Parameter Description
block Block identifier

Block Group - Zipcode - MSA Level Queries

Coming soon!

GraphQL API

curl -H "Authorization: Bearer <YOUR_API_KEY>" \
     -H "Content-Type:application/json" -X POST -d \
     '{ "query":  "{ propertyByParcel( parcel: \"0051091\") { address use_code zoning_code improvement_value land_value } }"}' \
      https://demo.odaportal.com/api/graphql

Or from the ODA Dashboard, just type into the Query Maker directly:

{ 
  propertyByParcel(parcel: '0051091'){
      address
      use_code
      zoning_code
      improvement_value
      land_value
  }
}

The above commands return JSON structured like this:

{
  "propertyByParcel":{
    "use_code": "Single Family Residential",
    "zoning_code": "NBEACH",
    "address": "650 CHESTNUT ST",
    "improvement_value": 284690,
    "land_value": 122009
  }
}

Oda's GraphQL API allows for forming more straighforward queries. With GraphQL you can get the fields that you really care, resulting in much faster, easier and more intuitive data access.

Available Queries

Query Parameters Description
propertyByParcel parcel The county PID or Parcel No of the property to retrieve
propertyByAddress address The address of the property to retrieve
propertyById id The ODA ID of the property to retrieve
propertiesByBlock block Block id for a particular zipcode or region
(beta) ownerByName name Fullname of the owner

Dictionaries

Property Level Dictionary

The Property Level API includes the following data fields:

Category Description
Property Info Address, location, use information of the property
Property Characteristics Physical characteristics and details of the property and the lot.
Property Assessments Current and historical tax and county assessment information of the property
Property Renovations Comparable properties for the subject property
Property Transactions Broker info and other details pertaining to the transaction of the property.

Property Info

Field Description Type
address Street address str
odaId 8 digit hexagon grid unit code based on Oda geo-indexing int
unit Unit within the building str
city City name str
zipcode 5-character US zipcode int
neighborhood_code Neighborhood code str
neighborhood Neighborhood name str
state US state abbreviation str
parcel_no Parcel identification number str
block Block identification number str
lot Lot number str
lat Latitude value (degree) float
long Longitude value (degree) float
use_code Property use code str
use_definition Property use definition str
class_code Property classification code str
class_definition Property classification definition str

Property Characteristics

Field Description Type
year_built The year when the property was built int
no_of_rooms Total number of rooms int
no_of_beds Total number of bedrooms int
no_of_baths Total number of bathrooms int
no_of_half_baths Total number of half bathrooms int
no_of_stories Number of stories int
no_of_units Number of units in property int
owner_occupied Whether owner is the occupant float
rent_long_term Long term rental property boolean
rent_short_term Short term rental property boolean
property_owner Name of owner str
zoning_code Zone code str
construction_type Generally type of construction str
lot_depth Depth of lot in linear feet float
lot_frontage Linear footage of front facing side of lot (front foot) float
property_area Same as lot area int
basement_area Square footage of basement int
lot_area Square footage of lot int
lot_code lot shapes, could be Rectangle, Square or Other str
corner Indicates if property is located at the corner of multiple streets boolean
traffic_level Level of traffic on facing street str

(beta) Property Comparables

Field Description Type
med_comp_tax_assessment Median tax assessment of comparable properties in current year int
med_comp_market_valuation Median market valuation of comparable properties in current year int
med_comp_rent Median monthly rent of comparable properties in current year float
rental_norm_price_diff Rental normalized price differential float
perc_single_fam Percentage of single family units to all units within 10 mile float
perc_two_fam Percentage of two family units to all units within 10 mile float
perc_three_fam Percentage of three family units to all units within 10 mile float
perc_multi_fam Percentage of multi family units to all units within 10 mile float

Property Tax Records

Field Description Type
tax_rate_area_code Tax rate dependent on location within city str
exemption_code Exemption Type Code str
exemption_code_defn Exemption type definition str
status_code Exemption status code str
exemption_value Exemption value int
fixtures_value Assessed value of fixtures int
improvement_value Assessed value of improvements int
land_value Assessed value of land int
property_value Assessed value of personal property int
curr_prop_tax_amt Property tax for current tax year str
pred_prop_tax Predicted property tax for next tax year str
appeal_volume Volume of property tax appeals filed by homeowners within one mile int

Property Renovations

Field Description Type
permit_no Number of permits issued to the property int
permit_details Detailed information on the issud permit object

(beta) Property Transactions

Field Description Type
sales_price Prior sales prices array
last_sales_date Last sales date str
sales_broker Broker contact information for prior sales object

(beta) Property Amenities

Field Description Type
school_list List of elementary, middle, high schools nearby object
school_ratings Rating of elementary, middle, high schools nearby object
school_dist Distance to elementary, middle, high schools nearby object
univ_list List of major universities nearby object
univ_dist Distance to major universities nearby object
store_list List of grocery and pharmacy stores nearby object
store_dist Distance to grocery and pharmacy stores nearby object
restaurant_list List of restaurants nearby object
cafe_list List of cafes nearby object
bar_list List of bars nearby object
restaurant_rating Rating of restaurants nearby object
cafe_rating Rating of cafes nearby object
bar_rating Rating of bars nearby object
restaurant_dist Distance to restaurants nearby object
cafe_dist Distance to cafes nearby object
bar_dist Distance to bars nearby object
gym_list List of gyms nearby object
gym_dist Distance to gyms nearby object
top_business Most frequent five business categories defined by their SIC codes within one mile array
transport_list List of major public transportation hubs nearby object
transport_dist Distance to major public transportation hubs nearby object
outdoor_list List of outdoor recreational areas nearby object
outdoor_size Size of outdoor recrational areas nearby object
outdoor_dist Distance to outdoor recreational areas nearby object

(beta) Comparables Dictionary

The Comparables API includes the following data fields:

Category Description
Property Comparables Comparable properties for the subject property

(beta) Property Comparables

Field Description Type
tax_comparables Array of comparable properties based on tax assessments for the specified property array<Property>
market_comparables Array of comparable properties based on market valuation for the specified property array<Property>

(beta) Owners Dictionary

The Owners API includes the following data fields:

Category Description
Owner Property Ownership information

(beta) Owners

Field Description Type
property_count Number of properties owned by an owner entity int
property_states Dispersion of owned properties across states int
properties_info List of properties owned by an entity array<Property>

Errors

The Oda API uses the following error codes:

Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The record requested is hidden for administrators only.
404 Not Found -- The specified record could not be found.
405 Method Not Allowed -- You tried to access a record with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The record requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many records!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.