Bold Street RESO Web API

The BoldStreet platform allows you to query MLS data using the RESO Web API specification, which is based on OData. For more information about the specification, please visit the RESO website. For more information about the OData specification, please visit the OData website.

Authorization

Your application should send an Authorization header with every HTTP request to the API:
Authorization: apikey {your-api-key}


Property API

GET /v1/syndication/Property

Description

Retrieves a set of properties.

Request

NameTypeDescription
$selectstringSelect specific fields to be included in the response. Note, if $select is not included, all fields are included in the response (similar to a SELECT * in SQL).
$filter*stringFilter by field values, e.g. OriginatingSystemName eq 'market_orginating_system_name’
$orderby

stringOrder items by the specified field, e.g. ModificationTimestamp asc
$top

integerShow only the first n items

$skip

integerSkip the first n items

$expand

arrayExpand related entities

$count

booleanGet the total number of records that match the filter criteria

* Indicates required parameters
GET /v1/syndication/Property(‘{ListingKey}’)

Description

Retrieves a single property.

Request

NameTypeDescription
ListingKey*

stringKey to identify a property

$expand

arrayExpand related entities
* Indicates required parameters

API Response

By default, the RESO Web API will return 50 listings, regardless of the number of total records available. You may use the $top parameter to specify your request to return up to 200 listings at a time.
If there are more than 200 records available, you will need to paginate through the results.
All API responses are returned in JSON format.

Paginating Through Results

If the total number of records that are returned by a query is greater than 200 (the maximum limit of a result set), then you will need to paginate through the results. This is done by incrementing the number of skipped records.
Return the next 200 records, ordered by ListPrice
/v1/syndication/Property?$filter=OriginatingSystemName eq ‘Georgia MLS 2’&$top=200&$skip=200&$orderby=ListPrice desc

Using Expand

Using the $expand operator allows you to include associated data from additional resources. For example, you are able to bring in more detail about the relevant office or member into the response payload for a property, without having to make a second or third API query to the other resources.
$expand = ListAgent, ListOffice, BuyerAgent, BuyerOffice

Media

Rather than keeping it in a separate resource, Media is returned as an object directly on the Property record. Typically, it is the highest resolution media available from the MLS and is stored on our CDN. You may link directly to the CDN. To see Media related to a Property (images, etc.), either:
  • Leave out the $select parameter from your request to /Property.
  • Add Media to your $select parameter. For example: /v1/syndication/Property?$select=ListingKey,UnparsedAddress,Media
Media are not accessible directly.

Operators

You can constrain the result set of a resource by passing additional operators with your request. Valid operators include:
OperatorDescription
eqEqual
neNot equal
gtGreater than
ltLess than
geGreater than or equal
leLess than or equal
andLogical and
orLogical or
notLogical not

Example OriginatingSystemName Values

OperatorOriginatingSystemName
GA MLSGeorgia MLS 2

Savannah, GASAV
Hilton Head

HILTONHEAD
GreenvilleGreater Greenville MLS
FMLSFMLS API

Mid-Florida

Stellar
Raleigh, NC

Triangle MLS, Inc

Charlotte NC

carolina
Jacksonville FL

realMLS (Northeast Florida Multiple Listing Service)

Nashville TN

realtrac
Greensboro, NC

Triad MLS
Chicagomred
Dallas/Fort Worth, TX

North Texas Real Estate Information Systems

Huntsville, AL

Valley MLS

San Antonio

SANANTONIO
Houston, TX

HAR

Error Codes

The Web API may return the following HTTP status codes. For non-200 statuses, we also return an error object in the response body, with a message containing additional specifics about the error.
HTTP Status Code

Description
200OK
400Bad request - Invalid query request

401Invalid token

401Unauthorized access

403Forbidden
404Not found

415Unsupported MIME type

500Internal server error

503Service unavailable