REALTOR.ca DDF Web API

The REALTOR.ca Data Distribution Facility (DDF®) Web API is CREA's national listing distribution surface, exposed as OData v4-style read endpoints over Property, Member, Office, OpenHouse and Destination resources, with per-resource Replication endpoints for full and incremental (LastUpdated) pulls. MLS® System data received from Canadian boards and associations is normalized to the RESO Data Dictionary. All endpoints, including the OData $metadata document, require an OAuth 2.0 Bearer access token obtained with data-feed credentials; anonymous requests return HTTP 401.

Documentation

Specifications

Other Resources

OpenAPI Specification

realtor-ca-ddf-web-api-openapi.json Raw ↑
{
  "openapi": "3.0.4",
  "info": {
    "title": "REALTOR.ca DDF® Web API Documentation",
    "description": "",
    "contact": {
      "name": "Realtor Support",
      "email": "support@realtor.ca"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://localhost:7051"
    }
  ],
  "paths": {
    "/odata/v1/Destination": {
      "get": {
        "tags": [
          "Destination"
        ],
        "summary": "Get a list of Client Destinations",
        "parameters": [
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Returns only the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "Skips the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Destination/{DestinationKey}": {
      "get": {
        "tags": [
          "Destination"
        ],
        "summary": "Get a single Client Destination by DestinationId",
        "description": "Both methods are valid and return the same result: a single Destination entity identified by its unique DestinationId.\nThe path-style is more intuitive and commonly used in RESTful APIs.\nThe function-style follows OData conventions and may be required in certain query contexts (e.g., when the key contains special characters or is not a simple numeric ID).\n\n<b>Path-style access: </b>```/odata/v1/Destination/{DestinationKey}```\n\n<b>Example: </b>```/odata/v1/Destination/1301```\n\n<b>Function-style access: </b>```/odata/v1/Destination({DestinationKey})```\n\n<b>Example: </b>```/odata/v1/Destination(1301)```",
        "parameters": [
          {
            "name": "DestinationKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK (DDF.Core.Entities.Destination object)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Lead/CreateLead": {
      "post": {
        "tags": [
          "Lead"
        ],
        "summary": "Create an email lead for a Member",
        "parameters": [
          {
            "name": "SuppressEmail",
            "in": "query",
            "description": "Suppresses an email from being sent to the Realtor when set to true.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "example": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DDF.Core.Models.LeadModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.LeadResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.LeadResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.LeadResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.LeadResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.LeadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Member": {
      "get": {
        "tags": [
          "Member"
        ],
        "summary": "Get a list of members",
        "parameters": [
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Returns only the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "Skips the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Member/{MemberKey}": {
      "get": {
        "tags": [
          "Member"
        ],
        "summary": "Get a single member by MemberKey",
        "description": "Both methods are valid and return the same result: a single Member entity identified by its unique MemberKey.\nThe path-style is more intuitive and commonly used in RESTful APIs.\nThe function-style follows OData conventions and may be required in certain query contexts (e.g., when the key contains special characters or is not a simple numeric ID).\n\n<b>Path-style access: </b>```/odata/v1/Member/{MemberKey}```\n\n<b>Example: </b>```/odata/v1/Member/14090```\n\n<b>Function-style access: </b>```/odata/v1/Member('{MemberKey}')```\n\n<b>Example: </b>```/odata/v1/Member('14090')```",
        "parameters": [
          {
            "name": "MemberKey",
            "in": "path",
            "description": "A unique identifier for this record from the immediate source",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK (DDF.Core.Entities.Member object)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Member/MemberReplication()": {
      "get": {
        "tags": [
          "Member"
        ],
        "summary": "Get a list of members for all destinations",
        "description": "Both methods are valid and return the same result:\nThe path-style is more intuitive and commonly used in RESTful APIs.\nThe function-style follows OData conventions.\n\n<b>Path-style access: </b>```/odata/v1/Member/MemberReplication```\n\n<b>Function-style access: </b>```/odata/v1/Member/MemberReplication()```\n\n",
        "parameters": [
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataReplicationListResponse`2[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Member/MemberReplication(DestinationId={DestinationId})": {
      "get": {
        "tags": [
          "Member"
        ],
        "summary": "Get a list of members for a single destination",
        "operationId": "odata/v1/Member/MemberReplication(DestinationId={DestinationId})",
        "parameters": [
          {
            "name": "DestinationId",
            "in": "path",
            "description": "A unique identifier for the desired destination",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataReplicationListResponse`2[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Office": {
      "get": {
        "tags": [
          "Office"
        ],
        "summary": "Get a list of offices",
        "parameters": [
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Returns only the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "Skips the first n results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Office/{OfficeKey}": {
      "get": {
        "tags": [
          "Office"
        ],
        "summary": "Gets a single office by OfficeKey",
        "description": "Both methods are valid and return the same result: a single Office entity identified by its unique OfficeKey.\nThe path-style is more intuitive and commonly used in RESTful APIs.\nThe function-style follows OData conventions and may be required in certain query contexts (e.g., when the key contains special characters or is not a simple numeric ID).\n\n<b>Path-style access: </b>```/odata/v1/Office/{OfficeKey}```\n\n<b>Example: </b>```/odata/v1/Office/49```\n\n<b> Function-style access: </b>```/odata/v1/Office('{OfficeKey}')```\n\n<b>Example: </b>```/odata/v1/Office('49')```",
        "parameters": [
          {
            "name": "OfficeKey",
            "in": "path",
            "description": "A unique identifier for this record from the immediate source",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK (DDF.Core.Entities.Office object)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Office/OfficeReplication()": {
      "get": {
        "tags": [
          "Office"
        ],
        "summary": "Get a list of offices for all destinations",
        "description": "Both methods are valid and return the same result:\nThe path-style is more intuitive and commonly used in RESTful APIs.\nThe function-style follows OData conventions.\n\n<b>Path-style access: </b>```/odata/v1/Office/OfficeReplication```\n\n<b>Function-style access: </b>```/odata/v1/Office/OfficeReplication()```\n\n",
        "parameters": [
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataReplicationListResponse`2[[DDF.Core.Entities.OfficeIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DDF.Core.Models.CustomOdataError"
                }
              }
            }
          }
        }
      }
    },
    "/odata/v1/Office/OfficeReplication(DestinationId={DestinationId})": {
      "get": {
        "tags": [
          "Office"
        ],
        "summary": "Get a list of offices for a single destination",
        "operationId": "odata/v1/Office/OfficeReplication(DestinationId={DestinationId})",
        "parameters": [
          {
            "name": "DestinationId",
            "in": "path",
            "description": "A unique identifier for the desired destination",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Selects which properties to include in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Return, along with the results, the total number of records in the dataset. NOTE: There is a performance cost with this query option.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filters the results, based on a Boolean condition.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "Sorts the results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "respons

# --- truncated at 32 KB (271 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/realtor-ca/refs/heads/main/openapi/realtor-ca-ddf-web-api-openapi.json