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
Name | Type | Description |
---|---|---|
$select | string | Select 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* | string | Filter by field values, e.g. OriginatingSystemName eq 'market_orginating_system_name’ |
$orderby | string | Order items by the specified field, e.g. ModificationTimestamp asc |
$top | integer | Show only the first n items |
$skip | integer | Skip the first n items |
$expand | array | Expand related entities |
$count | boolean | Get the total number of records that match the filter criteria |
* Indicates required parameters
GET /v1/syndication/Property(‘{ListingKey}’)
Description
Retrieves a single property.
Request
Name | Type | Description |
---|---|---|
ListingKey* | string | Key to identify a property |
$expand | array | Expand 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:
Operator | Description |
---|---|
eq | Equal |
ne | Not equal |
gt | Greater than |
lt | Less than |
ge | Greater than or equal |
le | Less than or equal |
and | Logical and |
or | Logical or |
not | Logical not |
Example OriginatingSystemName Values
Operator | OriginatingSystemName |
---|---|
GA MLS | Georgia MLS 2 |
Savannah, GA | SAV |
Hilton Head | HILTONHEAD |
Greenville | Greater Greenville MLS |
FMLS | FMLS 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 |
Chicago | mred |
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 |
---|---|
200 | OK |
400 | Bad request - Invalid query request |
401 | Invalid token |
401 | Unauthorized access |
403 | Forbidden |
404 | Not found |
415 | Unsupported MIME type |
500 | Internal server error |
503 | Service unavailable |
© Copyright 2025 Bold Street ai, All Rights Reserved.