Bridge Web API

Bridge's native (non-OData) RESTful Web API serving the same normalized MLS resources (Properties, Members, Offices, OpenHouses, Rooms, UnitTypes, and off-market data where licensed) as flat JSON. Provides a simpler request/response shape than the OData endpoint while preserving RESO Data Dictionary field naming. Media is returned as an object on the Property record and is hosted on a CDN. Requires a server token or access token issued by Bridge per dataset.

OpenAPI Specification

bridge-web-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bridge Web API
  version: '2.0'
  description: |
    Bridge's native (non-OData) RESTful Web API. Returns the same RESO-normalized resources as the
    OData endpoint but in a flatter JSON envelope optimized for clients that don't want the OData
    metadata layer. All requests are scoped to a `{dataset}` and authenticated with an `access_token`.
  contact:
    name: Bridge Interactive Support
    email: support@bridgeinteractive.com
servers:
- url: https://api.bridgedataoutput.com/api/v2
  description: Production v2
security:
- AccessToken: []
tags:
- name: Listings
- name: Agents
- name: Offices
- name: OpenHouses
paths:
  /{dataset}/listings:
    get:
      tags: [Listings]
      summary: List Listings
      description: Returns listings (Properties) for the dataset with RESO field naming.
      operationId: listListings
      parameters:
      - $ref: '#/components/parameters/Dataset'
      - name: limit
        in: query
        schema: { type: integer, default: 10, maximum: 200 }
      - name: offset
        in: query
        schema: { type: integer }
      - name: sortBy
        in: query
        schema: { type: string }
      - name: order
        in: query
        schema: { type: string, enum: [asc, desc] }
      - name: fields
        in: query
        schema: { type: string }
      responses:
        '200':
          description: Listing collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  success: { type: boolean }
                  status: { type: integer }
                  bundle:
                    type: array
                    items: { type: object }
                  total: { type: integer }
  /{dataset}/listings/{listingId}:
    get:
      tags: [Listings]
      summary: Get Listing
      operationId: getListing
      parameters:
      - $ref: '#/components/parameters/Dataset'
      - name: listingId
        in: path
        required: true
        schema: { type: string }
      responses:
        '200':
          description: Listing record
          content:
            application/json:
              schema:
                type: object
  /{dataset}/agents:
    get:
      tags: [Agents]
      summary: List Agents
      operationId: listAgents
      parameters:
      - $ref: '#/components/parameters/Dataset'
      responses:
        '200':
          description: Agent collection
          content:
            application/json:
              schema: { type: object }
  /{dataset}/offices:
    get:
      tags: [Offices]
      summary: List Offices
      operationId: listOffices
      parameters:
      - $ref: '#/components/parameters/Dataset'
      responses:
        '200':
          description: Office collection
          content:
            application/json:
              schema: { type: object }
  /{dataset}/openhouses:
    get:
      tags: [OpenHouses]
      summary: List Open Houses
      operationId: listOpenHouses
      parameters:
      - $ref: '#/components/parameters/Dataset'
      responses:
        '200':
          description: OpenHouse collection
          content:
            application/json:
              schema: { type: object }
components:
  securitySchemes:
    AccessToken:
      type: apiKey
      in: query
      name: access_token
  parameters:
    Dataset:
      name: dataset
      in: path
      required: true
      schema: { type: string }