Bridge Offices API
Retrieve brokerage office (RESO Office) records for a dataset, including office name, address, and contact, filterable by location and other fields.
Retrieve brokerage office (RESO Office) records for a dataset, including office name, address, and contact, filterable by location and other fields.
openapi: 3.0.1
info:
title: Bridge API (Bridge Data Output)
description: >-
The Bridge API from Bridge Interactive (a Zillow Group company) provides
normalized real-estate data access. It exposes a proprietary RESTful
"Bridge Web API" (listings, agents, offices, open houses) and a
RESO Data Dictionary-aligned "RESO Web API" (OData) for Property, Member,
Office, OpenHouse, and Media resources. All requests are scoped to a
dataset_id and authenticated with a Bearer server access token (also
accepted as an access_token query parameter).
termsOfService: https://www.bridgeinteractive.com/terms-of-use/
contact:
name: Bridge Interactive Support
url: https://bridgedataoutput.com/docs/platform/
version: 'v2'
servers:
- url: https://api.bridgedataoutput.com/api/v2
description: Bridge API v2 production
security:
- bearerAuth: []
paths:
/{dataset_id}/listings:
get:
operationId: getListings
tags:
- Listings
summary: Query listings for a dataset
description: >-
Returns normalized listing/property records for the given dataset.
Supports field selection, sorting, geo (near) search, pagination, and
per-field filter operators such as ListPrice.gt or City.eq.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/near'
responses:
'200':
description: A bundle of listing records.
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/{dataset_id}/listings/{id}:
get:
operationId: getListing
tags:
- Listings
summary: Get a single listing by id
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single listing record.
content:
application/json:
schema:
$ref: '#/components/schemas/SingleResource'
'401':
$ref: '#/components/responses/Unauthorized'
/{dataset_id}/agents:
get:
operationId: getAgents
tags:
- Agents
summary: Query agents (members) for a dataset
description: >-
Returns agent/member records. Supports filtering (e.g. firstName.ne),
field selection, sorting, and pagination.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/order'
responses:
'200':
description: A bundle of agent records.
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
'401':
$ref: '#/components/responses/Unauthorized'
/{dataset_id}/agents/{id}:
get:
operationId: getAgent
tags:
- Agents
summary: Get a single agent by id
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single agent record.
content:
application/json:
schema:
$ref: '#/components/schemas/SingleResource'
/{dataset_id}/offices:
get:
operationId: getOffices
tags:
- Offices
summary: Query offices for a dataset
description: >-
Returns brokerage office records. Supports filtering (e.g. state=VT),
field selection, sorting, and pagination.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/order'
responses:
'200':
description: A bundle of office records.
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
'401':
$ref: '#/components/responses/Unauthorized'
/{dataset_id}/offices/{id}:
get:
operationId: getOffice
tags:
- Offices
summary: Get a single office by id
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single office record.
content:
application/json:
schema:
$ref: '#/components/schemas/SingleResource'
/{dataset_id}/openhouses:
get:
operationId: getOpenHouses
tags:
- Open Houses
summary: Query open houses for a dataset
description: >-
Returns scheduled open house records, including date and time window
and the associated listing. Supports filtering, field selection,
sorting, and pagination.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/order'
responses:
'200':
description: A bundle of open house records.
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
'401':
$ref: '#/components/responses/Unauthorized'
/OData/{dataset_id}/$metadata:
get:
operationId: getResoMetadata
tags:
- RESO Web API
summary: RESO Web API metadata document
description: >-
Returns the RESO Web API (OData) metadata document describing the
available resources and fields for the dataset.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
responses:
'200':
description: OData $metadata (XML or JSON).
/OData/{dataset_id}/Property:
get:
operationId: getResoProperty
tags:
- RESO Web API
summary: RESO Property collection (OData)
description: >-
Returns RESO Data Dictionary Property records. Supports $filter,
$select, $top, $skip, $orderby, and $expand (e.g. Media, Member,
Office). Feed types such as /idx may be appended in the path.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
- $ref: '#/components/parameters/odataTop'
- $ref: '#/components/parameters/odataSkip'
- $ref: '#/components/parameters/odataOrderby'
- $ref: '#/components/parameters/odataExpand'
responses:
'200':
description: An OData collection of Property entities.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
'401':
$ref: '#/components/responses/Unauthorized'
/OData/{dataset_id}/Property/replication:
get:
operationId: getResoPropertyReplication
tags:
- RESO Web API
summary: RESO Property replication endpoint
description: >-
Replication endpoint used to extract more than 10,000 Property records
for full dataset synchronization.
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
responses:
'200':
description: An OData collection of Property entities for replication.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
/OData/{dataset_id}/Member:
get:
operationId: getResoMember
tags:
- RESO Web API
summary: RESO Member collection (OData)
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
- $ref: '#/components/parameters/odataTop'
- $ref: '#/components/parameters/odataSkip'
- $ref: '#/components/parameters/odataOrderby'
responses:
'200':
description: An OData collection of Member entities.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
/OData/{dataset_id}/Office:
get:
operationId: getResoOffice
tags:
- RESO Web API
summary: RESO Office collection (OData)
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
- $ref: '#/components/parameters/odataTop'
- $ref: '#/components/parameters/odataSkip'
- $ref: '#/components/parameters/odataOrderby'
responses:
'200':
description: An OData collection of Office entities.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
/OData/{dataset_id}/OpenHouse:
get:
operationId: getResoOpenHouse
tags:
- RESO Web API
summary: RESO OpenHouse collection (OData)
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
- $ref: '#/components/parameters/odataTop'
- $ref: '#/components/parameters/odataSkip'
- $ref: '#/components/parameters/odataOrderby'
responses:
'200':
description: An OData collection of OpenHouse entities.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
/OData/{dataset_id}/Media:
get:
operationId: getResoMedia
tags:
- RESO Web API
summary: RESO Media collection (OData)
parameters:
- $ref: '#/components/parameters/datasetId'
- $ref: '#/components/parameters/accessToken'
- $ref: '#/components/parameters/odataFilter'
- $ref: '#/components/parameters/odataSelect'
- $ref: '#/components/parameters/odataTop'
- $ref: '#/components/parameters/odataSkip'
- $ref: '#/components/parameters/odataOrderby'
responses:
'200':
description: An OData collection of Media entities.
content:
application/json:
schema:
$ref: '#/components/schemas/ODataCollection'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: >-
Server access token issued from the Bridge Dashboard under
Data Access > API Access Tokens. Sent as
"Authorization: Bearer <token>" or as an access_token query parameter.
parameters:
datasetId:
name: dataset_id
in: path
required: true
description: The dataset identifier the request is scoped to.
schema:
type: string
resourceId:
name: id
in: path
required: true
description: The unique identifier of a single resource record.
schema:
type: string
accessToken:
name: access_token
in: query
required: false
description: >-
Bridge access token. Optional when an Authorization Bearer header is
supplied.
schema:
type: string
limit:
name: limit
in: query
required: false
description: Maximum number of records to return per page.
schema:
type: integer
default: 10
offset:
name: offset
in: query
required: false
description: Number of records to skip for pagination.
schema:
type: integer
fields:
name: fields
in: query
required: false
description: Comma-separated list of fields to include in each record.
schema:
type: string
sortBy:
name: sortBy
in: query
required: false
description: Field name to sort results by.
schema:
type: string
order:
name: order
in: query
required: false
description: Sort order.
schema:
type: string
enum:
- asc
- desc
near:
name: near
in: query
required: false
description: >-
Geographic point as "longitude,latitude" used for radius/near search.
schema:
type: string
odataFilter:
name: $filter
in: query
required: false
description: OData filter expression (e.g. ListPrice gt 500000). Names are case sensitive.
schema:
type: string
odataSelect:
name: $select
in: query
required: false
description: Comma-separated OData field selection.
schema:
type: string
odataTop:
name: $top
in: query
required: false
description: OData page size (v2) / collection size (v3).
schema:
type: integer
odataSkip:
name: $skip
in: query
required: false
description: OData number of records to skip.
schema:
type: integer
odataOrderby:
name: $orderby
in: query
required: false
description: OData ordering expression (e.g. ListPrice desc).
schema:
type: string
odataExpand:
name: $expand
in: query
required: false
description: OData related resources to embed (e.g. Media, Member, Office).
schema:
type: string
responses:
Unauthorized:
description: Missing or invalid access token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
TooManyRequests:
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Bundle:
type: object
description: Bridge Web API response envelope for a collection of records.
properties:
success:
type: boolean
status:
type: integer
bundle:
type: array
items:
type: object
additionalProperties: true
total:
type: integer
SingleResource:
type: object
description: Bridge Web API response envelope for a single record.
properties:
success:
type: boolean
status:
type: integer
bundle:
type: object
additionalProperties: true
ODataCollection:
type: object
description: OData collection response for RESO Web API resources.
properties:
'@odata.context':
type: string
'@odata.nextLink':
type: string
value:
type: array
items:
type: object
additionalProperties: true
Error:
type: object
properties:
success:
type: boolean
status:
type: integer
message:
type: string