RESO Web API Overview
Built within the Spark® API is a /Reso/OData
endpoint that implements the
RESO Web API
and provides data using the
RESO Data Dictionary.
The documentation we provide does not fully document the RESO Web API itself; rather, it's meant to get you up and running on our implementation of the standard.
1. Overview
The RESO Web API endpoint is at:
https://sparkapi.com/Reso/OData
Because our RESO Web API shares the same authentication and authorization infrastructure as the Spark API, you can use the same API keys provided for the Spark API to access the RESO Web API endpoints.
2. Authorization
The method for obtaining authorization from end users and making authenticated requests is identical to accessing the Spark API directly. See our authentication documentation for more information.
3. Making Requests
Resources
Our RESO Web API provides the following distinct endpoints:
Retrieving Metadata
Metadata is accessible at:
https://sparkapi.com/Reso/OData/$metadata
Retrieving Data
Using the Property resource as our example, all properties can be retrieved at:
https://sparkapi.com/Reso/OData/Property
An individual property can be retrieved at:
https://sparkapi.com/Reso/OData/Property('<ListingKey>')
For example, if a listing's ListingKey
is 20100000000000000000000000
, your request should be:
https://sparkapi.com/Reso/OData/Property('20100000000000000000000000')
To access Property
Media, Rooms and other related resource records, FBS recommends utilizing the $expand parameter. All allowed expansions are listed in the NavigationProperty
entities in your feed metadata (see above).
https://sparkapi.com/Reso/OData/Property?$expand=Media,OpenHouse
If desired, these related resource records can instead be accessed as a subresource of each Property
record. Here are a couple examples:
https://sparkapi.com/Reso/OData/Property('20100000000000000000000000')/Media
https://sparkapi.com/Reso/OData/Property('20100000000000000000000000')/OpenHouse
Request Parameters
Each service supports some or all of the request parameters documented on our RESO request parameters page.
Response Description
This OData service only responds to JSON format except for the $metadata
endpoint, which returns XML.
Encoded values
OData specifications that the RESO Web API is built upon dictate that certain data attributes and values can't contain spaces, non-alpha-numeric characters, etc. When they do, the values need to be encoded. For this reason some custom field names are encoded, and the corresponding human-readable names can be looked up in the metadata. The EntityType Name="CustomFields"
section of the metadata will list all custom field names and their human readable translations. Here's an example of a metadata entry that connects an encoded name and a display name:
<Property Name="Documents_co_Exclusive_sp_Right_sp_to_sp_Sell_sp__lbracket_private_rbracket_" Type="Edm.Boolean">
<Annotation Term="MLS.OData.Metadata.LocalName" String="Documents Exclusive Right to Sell [private]"/>
</Property>