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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/realtor-ca-ddf-web-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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