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.

Bridge Web API is one of 4 APIs that Bridge publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Real Estate, MLS, Listings, and JSON. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

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: [email protected]
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 }