Bridge Property API

RESO Property resource (listings)

OpenAPI Specification

bridge-mls-property-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bridge RESO Web Agents Property API
  version: '2.0'
  description: 'RESO Platinum-certified Web API for MLS listing data, served by Bridge (a Zillow Group company).

    Data is normalized to the RESO Data Dictionary and queryable via OData 4.0. Bridge interprets

    OData `$top` as page size (default 10, max 200 via the `maxpagesize` header) and extends the spec

    with an `unselect` parameter that returns all fields except those listed.


    Each request is scoped to a `{dataset}` (the MLS dataset code) and must carry an `access_token` —

    either as a query parameter or via the `Authorization: Bearer` header.

    '
  contact:
    name: Bridge Interactive Support
    email: support@bridgeinteractive.com
    url: https://www.bridgeinteractive.com/contact/
  license:
    name: Bridge Data Output Terms of Use
    url: https://www.bridgeinteractive.com/terms-of-use/
servers:
- url: https://api.bridgedataoutput.com/api/v2/OData
  description: Production v2 OData endpoint
- url: https://api.bridgedataoutput.com/api/v3/OData
  description: Production v3 OData endpoint
security:
- BearerAuth: []
- AccessToken: []
tags:
- name: Property
  description: RESO Property resource (listings)
paths:
  /{dataset}/Property:
    get:
      tags:
      - Property
      summary: List Properties
      description: Query the Property entity set with OData query options. Returns RESO-normalized listing records including embedded Media.
      operationId: listProperties
      parameters:
      - $ref: '#/components/parameters/Dataset'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Select'
      - $ref: '#/components/parameters/Unselect'
      - $ref: '#/components/parameters/Expand'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/Top'
      - $ref: '#/components/parameters/Skip'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/MaxPageSize'
      responses:
        '200':
          description: Property collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyCollection'
  /{dataset}/Property('{listingKey}'):
    get:
      tags:
      - Property
      summary: Get Property By Listing Key
      description: Retrieve a single Property record by its `ListingKey`.
      operationId: getProperty
      parameters:
      - $ref: '#/components/parameters/Dataset'
      - name: listingKey
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/Select'
      - $ref: '#/components/parameters/Expand'
      responses:
        '200':
          description: Property record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Property'
        '404':
          description: Not found
components:
  parameters:
    Select:
      name: $select
      in: query
      description: Comma-separated list of fields to return.
      schema:
        type: string
    Top:
      name: $top
      in: query
      description: Page size. Bridge interprets `$top` as page size (not total collection size). Default 10, max 200.
      schema:
        type: integer
        default: 10
        maximum: 200
    Dataset:
      name: dataset
      in: path
      required: true
      description: MLS dataset code (e.g. `test`, `actris_ref`, `mlspin`).
      schema:
        type: string
    Count:
      name: $count
      in: query
      description: Include `@odata.count` in the response.
      schema:
        type: boolean
    MaxPageSize:
      name: maxpagesize
      in: header
      description: Preferred page size (default 10, max 200).
      schema:
        type: integer
        default: 10
        maximum: 200
    OrderBy:
      name: $orderby
      in: query
      description: Sort expression (e.g. `ModificationTimestamp desc`).
      schema:
        type: string
    Skip:
      name: $skip
      in: query
      description: Number of records to skip.
      schema:
        type: integer
    Unselect:
      name: unselect
      in: query
      description: Bridge extension — comma-separated list of fields to exclude (returns all other fields).
      schema:
        type: string
    Expand:
      name: $expand
      in: query
      description: Comma-separated list of navigation properties to expand (e.g. `Media,Rooms`). Default max 10 results per expand unless `$top` is specified inside the expand.
      schema:
        type: string
    Filter:
      name: $filter
      in: query
      description: OData filter expression (e.g. `ListPrice gt 500000 and StandardStatus eq 'Active'`).
      schema:
        type: string
  schemas:
    Property:
      type: object
      description: RESO Property resource. Field set follows the RESO Data Dictionary; selected high-cardinality fields shown here.
      properties:
        ListingKey:
          type: string
        ListingId:
          type: string
        ListPrice:
          type: number
        StandardStatus:
          type: string
          enum:
          - Active
          - Pending
          - Closed
          - Withdrawn
          - Canceled
          - Expired
          - Hold
          - ComingSoon
          - ActiveUnderContract
        PropertyType:
          type: string
        PropertySubType:
          type: string
        UnparsedAddress:
          type: string
        StreetNumber:
          type: string
        StreetName:
          type: string
        City:
          type: string
        StateOrProvince:
          type: string
        PostalCode:
          type: string
        Country:
          type: string
        Latitude:
          type: number
        Longitude:
          type: number
        BedroomsTotal:
          type: integer
        BathroomsTotalInteger:
          type: integer
        LivingArea:
          type: number
        LotSizeSquareFeet:
          type: number
        YearBuilt:
          type: integer
        PublicRemarks:
          type: string
        ListAgentKey:
          type: string
        ListOfficeKey:
          type: string
        ModificationTimestamp:
          type: string
          format: date-time
        OnMarketDate:
          type: string
          format: date
        CloseDate:
          type: string
          format: date
        Media:
          type: array
          items:
            $ref: '#/components/schemas/Media'
    PropertyCollection:
      type: object
      properties:
        '@odata.context':
          type: string
        '@odata.count':
          type: integer
        '@odata.nextLink':
          type: string
        value:
          type: array
          items:
            $ref: '#/components/schemas/Property'
    Media:
      type: object
      properties:
        MediaKey:
          type: string
        MediaURL:
          type: string
          format: uri
        MediaCategory:
          type: string
        MediaType:
          type: string
        Order:
          type: integer
        ImageWidth:
          type: integer
        ImageHeight:
          type: integer
        ResourceRecordKey:
          type: string
        ModificationTimestamp:
          type: string
          format: date-time
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: opaque
      description: '`Authorization: Bearer {access_token}` issued by Bridge per dataset.'
    AccessToken:
      type: apiKey
      in: query
      name: access_token
      description: Per-dataset access token passed as a query parameter.