{ "openapi": "3.0.4", "info": { "title": "REALTOR.ca DDF® Web API Documentation", "description": "\r\nThe REALTOR.ca Data Distribution Facility (DDF®) allows REALTORS® across Canada to access listing content\r\non personal websites, franchisor websites, real estate advertising websites and partner sites based on\r\npermissions set by their brokerage owner. REALTOR.ca DDF® manages these permissions and provides\r\nREALTORS® with the ability to create data feeds based off these permissions.\r\n\r\nThe REALTOR.ca DDF® Web API is a data distribution platform that allows CREA Members, Developers and\r\nTech Providers data access using APIs built on modern industry standards. The platform standardizes how\r\nyou access MLS® System listing data received from boards and associations across Canada. MLS® System\r\ndata is normalized based on the RESO Data Dictionary standards.\r\n\r\nThe DDF® Web API data and endpoints are behind an authentication layer that requires a valid\r\naccess_token. To access the Web API data or endpoints, include access_token with each call made to the\r\nAPI. The access_token can be generated by using your data feed credentials and making a call to our\r\nauthentication server.\r\n\r\n# Quickstart Overview \r\n\r\nThis quickstart example will walk you through requesting the access_token and accessing the DDF® Web API endpoints by making API calls. \r\n\r\nFor this guide, you can use any API client of your choice. \r\n\r\n### Prerequisites \r\n\r\nTo run this quickstart, you need the following prerequisites: \r\n\r\n- API Client of your choice\r\n- client_id - your data feed's username\r\n- client_secret - your data feed's password\r\n\r\n
\r\n\r\n### Step 1 - Get an access token \r\n\r\nAn access token is required to make requests to DDF® Web API. To generate one, make a request to identity.crea.ca. The access token lasts for 60 minutes. \r\n\r\n**Example Request:** \r\n\r\n\tPOST /connect/token \r\n\tHost: identity.crea.ca \r\n application/x-www-form-urlencoded\r\n\r\n Body\r\n\tgrant_type : \"client_credentials\"\r\n\tclient_id : \"xxxxxxxx\"\r\n\tclient_secret : \"xxxxxxxx\"\r\n\tscope : \"DDFApi_Read\"\r\n\r\n**Example Response:**\r\n\r\nThe response includes the access_token. This is what you will use to make API calls to DDF® Web API.\r\n\r\n```json\r\n{\r\n \"access_token\": \"{access_ token}\",\r\n \"expires_in\": 3600,\r\n \"token_type\": \"Bearer\",\r\n \"scope\": \"DDFApi_Read\"\r\n}\r\n```\r\n
\r\n\r\n### Step 2 - Make an API call to any resource available \r\n\r\nProceed making an API call to our OpenHouse endpoint in DDF® Web API using the access_token that was generated in the previous step. \r\n\r\n**Example Request:**\r\n\r\n\tGET /odata/v1/OpenHouse \r\n\tHost: ddfapi.realtor.ca \r\n\tAuthorization: Bearer {access_token} \r\n\r\n**Example Response:** \r\n\r\nStatus: 200 OK \r\n```json\t\r\n{\r\n \"@odata.context\": \"https://ddfapi.realtor.ca/odata/v1/$metadata#OpenHouse\",\r\n \"value\": [{\r\n \"OpenHouseKey\": \"1000\",\r\n \"OpenHouseStartTime\": \"21:04:51.25\",\r\n \"OpenHouseEndTime\": \"21:04:51.25\",\r\n \"ListingKey\": \"22009401\",\r\n \"ListingId\": \"ListingIdSample\",\r\n \"OpenHouseDate\": \"2021-07-12\",\r\n \"OpenHouseRemarks\": \"OpenHouseRemarksSample\",\r\n \"ShowingAgentFirstName\": \"ShowingAgentFirstnameSample\",\r\n \"ShowingAgentLastName\": \"ShowingAgentLastNameSample\",\r\n \"ShowingAgentKey\": \"2000\",\r\n \"ShowingAgentMlsID\": \"ShowingAgentMlsIDSample\",\r\n \"OpenHouseType\": \"Sheetrock (Drywall)\",\r\n \"OpenHouseStatus\": \"Off Market\"\r\n }\r\n ]\r\n}\r\n```\r\n
\r\n\r\n### Step 3 - Make an API call with OData capabilities \r\n\r\nOur DDF® Web API was built on top of OData specification, this gives users the ability to query our resources in a more flexible way. \r\n\r\n**Example Request:**\r\n\r\n\tGET /odata/v1/OpenHouse?$select=OpenHouseKey \t\r\n\tHost: ddfapi.realtor.ca \r\n \tAuthorization: Bearer {access_token} \r\n\r\nThe request above returns Open House records but only the OpenHouseKey field in the payload based on the $select criteria. \r\n\r\n**Example Response:**\r\n\r\nStatus: 200 OK \r\n```json\r\n{\r\n \"@odata.context\": \"https://ddfapi.realtor.ca/odata/v1/$metadata#OpenHouse(OpenHouseKey)\",\r\n \"value\": [{\r\n \"OpenHouseKey\": \"1000\"\r\n }, {\r\n \"OpenHouseKey\": \"1001\"\r\n }, {\r\n \"OpenHouseKey\": \"1002\"\r\n }\r\n ]\r\n}\r\n```\r\n
\r\n\r\n\r\n\r\n\r\n# Authorization\r\n\r\nAuthorization for the DDF® Web API platform is done through an Identity Server. The Identity Server leverages OAUTH 2.0 to provide access tokens to DDF® Web API. \r\n\r\n## API Access Tokens \r\n\r\nAll data access for an application is authorized and authenticated using API tokens. \r\n\r\nFor DDF® Web API we recommend using a server token to implement server-to-server API requests. Client-to-server API token requests create a security risk and could allow unauthorized access to your data feeds. \r\n\r\nEach request to the DDF® Web API requires an active data feed with valid credentials to obtain an access token. An inactive feed will result in no access token returned. \r\n\r\nTo request a token, send a POST request to the following endpoint. \r\n\r\n https://identity.crea.ca/connect/token \r\n\r\nThe following fields should be in the request body and should be x-www-form-urlencoded. \r\n\r\n| Field | Description | \r\n| ----------- | ----------- |\r\n| client_id | The username of your Destination |\r\n| client_secret | The password of your Destination |\r\n| grant_type | Use the value client_credentials |\r\n| scope | Use the value DDFApi_Read |\r\n\r\nThe response will have the following fields when successful \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
FieldDescription
access_tokenThe value of the requested access token
expires_inThe time in which the token expires (in seconds). Should be 3600 by default.

NOTE: The token supplied is not a sliding token. After one hour a new token must be requested regardless.
token_typeThe type of token. Should always be Bearer.
scopeShould always be DDFApi_Read
\r\n\r\nAfter receiving the token, add the \"Authorization\" header with the bearer token to gain access to the API. \r\n\r\n![auth-diagram](/Content/images/Auth_Diagram.png)\r\n
\r\n\r\n\r\n\r\n\r\n\r\n# DDF® Web API \r\n\r\nThe DDF® Web API platform allows you to query MLS® System data using the RESO Web API specification, which is based on OData. For more information about RESO specification, please visit the RESO website. \r\n\r\n## Metadata \r\n\r\n\r\nYou can request metadata that will return the field name, type, whether nullable, description and lookup values that are related to a certain resource in XML format. The complete set of DDF® Web API Metadata can be found by querying https://ddfapi.realtor.ca/odata/v1/$metadata (Requires authentication). \r\n\r\n**Example Of Metadata** \r\n```xml\r\n \r\n\t \r\n\t\t \r\n\t \r\n \r\n```\r\n
\r\n\r\n*Some of the Enums/Lookups may be obsolete resulting in the listing becoming outdated. This is temporary and will fix itself when the data is refreshed by the board sending it.\r\n\r\n## Resources \r\n\r\nRecords are organized into standardized resources, most commonly: Properties, Members and Offices. Most listing data includes Rooms and Media within the Property endpoint as complex objects. Open Houses data is available through its own dedicated endpoint. Here is a brief description of each one of these resources. \r\n\r\n| Resource | Description |\r\n| ----------- | ----------- |\r\n|**Property**| Contains all the fields related to a real estate listing. The fields within the Property Resource include the MLS® System number, listing price, latitude and longitude of the listing.|\r\n|**Member**| Includes information on the roster of agents and brokers who participate in the MLS® System and/or are members of a local Board or Association. The fields within the Member Resource include the member name, address, and the Board/Association the member belongs to.|\r\n|**Office**| Includes the roster of offices who participate in the MLS® System. The fields within the Office Resource include the office name, address, and the Board/Association the office is tied to”. Here, I’m assuming the Board/Association the office is tied to is determined by the membership of the managing broker.|\r\n|**OpenHouse**| A collection of fields commonly used to record an open house event. The fields within the OpenHouse Resource include the start and end time as well as the related listing and the showing agent. |\r\n|**Replication**| A master list of all records from each of the three resource types, i.e., Property, Member and Office. Each of these resource types return a dataset that contains Resource Identifiers.|\r\n\r\n
\r\n\r\n## Error Codes \r\n\r\nThe Web API may return the following HTTP status codes. For non-200 statuses, we also return an error object within the response body, with a message containing additional specifics about the error. \r\n\r\n| Code | Description | Message |\r\n| ----------- | ----------- | ----------- |\r\n| 200 | OK | N/A |\r\n| 400 | Bad request | Invalid Primary Key.

The parameter value you have entered as a primary key is invalid. For more information, please reference the technical documentation.

Empty or null values are not supported by the Select clause. Please specify a valid value and try again. For more information, reference the technical documentation. |\r\n| 401 | Unauthorized access | Invalid format or expired token or Invalid DestinationId.

You are not authorized to perform this request. |\r\n| 403 | Forbidden | N/A | \r\n| 404 | Not found | Invalid URL.

The resource you are looking for is invalid. For more information, reference the technical documentation.

The {ResourceType} resource you are looking for does not exist. For more information, reference the technical documentation. |\r\n| 408 | Request timeout | N/A | \r\n| 415 | Unsupported MIME type | N/A | \r\n| 500 | Unexpected Internal server error | An unexpected error was encountered. Please try again. For more information, reference the technical documentation. |\r\n| 503 | Service unavailable | N/A | \r\n\r\n
\r\n\r\n\r\n## API Endpoints \r\n\r\nThe following are endpoints defined by the WebAPI. \r\n\r\n| Endpoint | Description | URI\r\n| ----------- | ----------- | ----------- |\r\n| Office | Supplies a list of Office data. | /Office|\r\n| Office | Supplies a single Office data.| /Office(OfficeKey)

/Office/OfficeKey|\r\n| Office | Supplies replication data for Office.| Office/OfficeReplication |\r\n| Member | Supplies a list of Member data.| /Member |\r\n| Member | Supplies a single Member data.| /Member(MemberKey)

/Member/MemberKey|\r\n| Member | Supplies replication data for Member.| /Member/MemberReplication |\r\n| Property | Supplies a list of Property data. | /Property|\r\n| Property | Supplies a single Property data. | /Property(PropertyKey)

/Property/PropertyKey|\r\n| Property | Supplies replication data for Property. | /Property/PropertyReplication|\r\n| OpenHouse | Supplies OpenHouse data for specific listings. |/OpenHouse |\r\n| OpenHouse | Supplies a single OpenHouse data for specific listings. |/OpenHouse(OpenHouseKey)

/OpenHouse/OpenHouseKey |\r\n| Destination | Supplies a list of Data Feed data. | /Destination |\r\n| Destination | Supplies a single Data Feed data. | /Destination(DestinationId)

/Destination/DestinationId |\r\n\r\nAll endpoints are accessible through an authorization layer described in the next section. For a full description of the API endpoints, see the [API definition](#tag/Member). \r\n\r\n
\r\n\r\n\r\n\r\n## API Response \r\n\r\nAll API responses are returned in json format with exception of metadata which are returned as XML. \r\n\r\nThe API response can contain a single or multiple data records. For complete details of data models in the API see the [Models](#tag/member_model) section of the API Definition. \r\n\r\n
\r\n\r\n## Paginating through results \r\n\r\nIn order to minimize the data returned in a single query, results are paginated. By default, a page will contain a maximum of 20 results. This value can be increased using the $top query parameter which can increase the page size to a maximum of 100 records. \r\n\r\nIf an additional page of data beyond the current page exists, a field named @odata.nextLink will be returned in the response. The nextLink value will be a URL pointing to the next page of data. \r\n\r\n**Example Response:**\r\n```json\r\n{ \r\n\t\"@odata.context\": \"https://ddfapi.realtor.ca/odata/v1/$metadata#Member\", \r\n\t\"value\": [...], \r\n\t\"@odata.nextLink\": \"https://ddfapi.realtor.ca/odata/v1/Member?$top=20&$skip=20\" \r\n} \r\n```\r\n*Notice that the $top and $skip OData query parameters are used to select which page of data is selected in the next link.*\r\n\r\nIn order to determine total amount of pages, the $count query parameter should be used to retrieve the total amount of records which should be divided by the page size. **Note** that the $count parameter increases the overhead of a request therefore it is recommended that the total count of the data is requested once and not for each request of a page. \r\n\r\nWhen paginating through records, it is necessary to sort the results as there is no guarantee on the order, and multiple pages may include the same record more than once. \r\n\r\nIf you wish to paginate through more than 10,000 listings you will need to use the dedicated replication endpoint. \r\n\r\n
\r\n\r\n## Replication \r\n\r\nThe purpose of the replication endpoints is to give technical providers the ability to easily replicate their data into their own separate database. The following endpoints are used for replication: \r\n\r\n```\r\nhttps://ddfapi.realtor.ca/Office/OfficeReplication \r\n\r\nhttps://ddfapi.realtor.ca/Member/MemberReplication \r\n\r\nhttps://ddfapi.realtor.ca/Property/PropertyReplication \r\n```\r\n\r\nThe described endpoints have the sole purpose of giving quick access to the records that have been updated most recently. They are sorted by a modification timestamp which should allow external systems to synchronize data periodically and check the records that have changed since the last run.\r\n\r\n
\r\n\r\n## Testing Requests\r\n\r\nTo test any request in the Web API you will need to send an access token which cannot be done through a typical web browser. Postman (https://www.postman.com/) is the preferred option to quickly test out any request in the API however there are other tools available that may be your preference. Below are a few screenshots taken from Postman that outline typical requests.\r\n\r\n### Requesting A Token\r\n\r\n![Example Token Request](/Content/images/Request_Token.png)\r\n\r\n### Requesting A Property\r\n\r\n![Example Property Request](/Content/images/Request_Property.png)\r\n\r\n
\r\n\r\n\\* **NOTE:** Minimum TLS version supported will be TLS v1.2. All incoming requests are expected to be from HTTPS to support TLS v1.2.\r\n\r\n## DDF® clients guide \r\n\r\nREALTOR.ca DDF® Web API platform allows DDF® clients to request and receive a parallel set of CREA data that will be displayed on their websites. The parallel data set must be refreshed regularly as CREA adds, updates, and deletes its records. \r\n\r\nThe set of records available to DDF® clients is rules-based and determined by \r\n\r\n- the type of destination making the request, \r\n- the owner of the destination, and \r\n- the approval settings of boards/associations, brokerage owners and/or salespersons (where applicable). \r\n\r\n### Step 1. Retrieve all the active records (Initial load) \r\n\r\nClients are advised to fetch the complete property details from the Property endpoint only for the first time. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property \r\n```\r\n\r\n\r\n### Step 2. Retrieve all active records updated since a specified date/time. \r\n\r\nClients are advised against retrieving complete property details for all active records on every request. It is recommended that clients only request records updated since the last request was made. \r\n\r\nUse the replication endpoint to fetch all active records updated since the last request. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication()?$filter=ModificationTimestamp gt 2024-01-25T00:00:00.00Z\r\n```\r\n\r\n### Step 3. Retrieve a master list of all active records. \r\n\r\nClients can obtain a comprehensive list of all records available through the Replication endpoint. Any properties, offices, or agents present in a customer's data store but not included in the master list must be removed from the customer's data store. For instance, only properties currently active on the market and approved for distribution will be included in the master list. If a property is no longer available on the market (due to being sold, cancelled, etc.), it will be excluded from the master list and should be deleted from the customer's data store. Additionally, the master list can be utilized to ensure the accuracy and consistency of the data. \r\n\r\nThe master list will contain 2 values for each record: the ListingKey and the ModificationTimestamp. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication()\r\n```\r\n\r\n\r\n### Step 4. Retrieve Property details by Listing Key.\r\n\r\nAfter obtaining the ListingKeys of updated properties from the Replication endpoint, clients can utilize these ListingKeys to query the Property endpoint and retrieve the corresponding property details. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property('4143136')\r\n```\r\n\r\n
\r\n\r\n## Technology Provider guide \r\n\r\nDDF® Technology Providers are organizations that pull multiple data feeds for different users. These feeds can be of any type that agents and brokerage owners can register: Member Website Feeds – My Listings, Member Website Feed - All Offices, National Shared Pool. \r\n\r\nWhile these data feeds can be pulled separately, this creates 2 problems for Technology Providers: \r\n\r\n
    \r\n
  1. Each data feed being pulled would require the provider to pull using that Destination feed credentials.
  2. \r\n
  3. Properties available to multiple feeds would need to have their details pulled for each data feed. In the case of the National Shared Pool, with potentially hundreds of thousands of properties available, this duplication is cumbersome and slow.
  4. \r\n
\r\n\r\nTo address these challenges, CREA has developed a solution that enables the linking of multiple data feeds to a single Technology Provider account. This linking process consolidates all the linked feeds into a unified feed. Technology Provider accounts are assigned their own authentication credentials and are provided with a merged dataset. This eliminates the requirement to query the same listing repeatedly and enhances efficiency. \r\n\r\n**Initial Step – Retrieve all the active listings available in TP’s feed.**\r\n\r\nClients are advised to fetch the complete property details from the Property endpoint only for the first time. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property \r\n```\r\n\r\n**Retrieve all active records updated since a specified date/time for TP’s unified feed.**\r\n\r\nWhen a Technology Provider makes a LastUpdated query, they will receive matching properties from any of their linked data feeds. Whether a property is available on only a single linked data feed or hundreds of linked data feeds, the Technology Provider will only need to retrieve that property details a single time. \r\n\r\nClients can retrieve a master list of the complete set of records accessible from the Replication endpoint. This list contains 2 values for each record: the ListingKey and the ModificationTimestamp. By comparing the timestamp, it is possible to identify any records that need to be updated or inserted. This will always return a complete list of records. \r\n\r\n**Example:**\r\n\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication()?$filter=ModificationTimestamp gt 2024-01-25T00:00:00.00Z\r\n```\r\n\r\nAfter obtaining the ListingKeys of updated properties from the Replication endpoint, the Technology provider can utilize these ListingKeys to query the Property endpoint and retrieve the corresponding property details. \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property?$filter=ListingKey in ('123456','67891011')\r\n```\r\n\r\n**Retrieve a master list of all active records available in TP’s unified feed.**\r\n\r\nAs with standard DDF® data feeds, performing a daily Master List call is necessary to ensure that all properties are appropriately updated and to inform clients about properties that should be deleted from their systems. When a Technology Provider makes a Master List query, they receive a comprehensive list of all properties available in any of their linked feeds. \r\n\r\nIt is crucial that any properties, offices, or agents present in a client's data store but not found in the master list are promptly deleted from the client data store. For instance, the master list includes active properties that are approved for distribution in the market. If a property is no longer on the market (sold, cancelled, etc.), it will be excluded from the master list and should be removed from the client data store as well. The master list can also be used to ensure data integrity, as it serves as a reference for verifying the accuracy and consistency of the client's data. \r\n\r\n![TP MasterList Diagram](/Content/images/TP_MasterList_Diagram.png)\r\n\r\nTechnology Provider Master List - **Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication() \r\n```\r\n\r\n**Destination Endpoint**\r\n\r\nFor Technology Providers to query Master Lists for their clients, they must have knowledge of the DestinationID associated with each of their data feed clients. To facilitate this, a Destination endpoint is provided to Technology Providers, allowing them to retrieve information about each destination/data feed that is linked to them.\r\n\r\n- To retrieve all destinations associated with your Technology Provider account: \r\n\r\n**Example:** \r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Destination\r\n```\r\n\r\n- To retrieve details of a **single** destination associated with your Technology Provider account: \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Destination({DestinationKey})\r\n```\r\n\r\n**Retrieve the Property list per Destination.**\r\n\r\nThe ability of Technology Providers to get up-to-date properties for all their clients in a single feed is only part of the process. The next step is determining which properties go with the corresponding data feed client. For example, a single property may be displayed on Client A’s member website, and Client B’s National Shared Pool site, but shouldn’t be displayed on Client C’s National Shared Pool site because that client only receives properties from a single province. \r\n\r\nTo determine the relationship between properties and data feed clients, Technology Providers are required also to pull the Master List for each Destination. This can be accomplished by making a Master List query from the Replication endpoint with an optional DestinationID parameter included. \r\n\r\n- Master List for Client A: \r\n\r\n**Example:**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication(DestinationId=12517)\r\n```\r\n\r\n- Master List for Client B:\r\n\r\n**Example**\r\n```\r\nhttps://ddfapi.realtor.ca/odata/v1/Property/PropertyReplication(DestinationId=15019)\r\n```\r\n\r\n
\r\n\r\n## Website requirements\r\n\r\n**Powered by: REALTOR.ca logo** \r\n\r\nDDF® Rules mandate that all DDF® Listing Content displayed on Real Estate Advertising Websites, Partner Sites, and Member Websites must include the \"Powered by REALTOR.ca\" badge. The badge should be clickable and redirected to the original listing on REALTOR.ca. \r\n\r\nIf REALTORS® are not using a DDF® Technology Provider and are managing their website, they will be responsible for ensuring the badge is on every listing. \r\n\r\nUse the following code snippets to embed \"Powered by: REALTOR.ca\" logos and links into your site. \r\n\r\n- **English -** \\ \\</a> \r\n- **French -** \\ \\</a> \r\n\r\n
\r\n\r\n## Analytics \r\n\r\nGiven that a single listing can be displayed on numerous websites and applications, agents and brokerage owners require a means to track where their listing data is accessed. To address this, CREA has developed a data warehousing solution that enables comprehensive listing activity data collection. This data is categorized based on various factors, including the site or application, listing agent, firm, brokerage owner, and franchisor, providing agents and brokerage owners with valuable insights into the visibility and reach of their listings. \r\n\r\n**Analytics Web Service**\r\n\r\nThe analytics web service is used to capture listing statistics from various sources. Whenever a listing event occurs (e.g. a listing is viewed), the website or application should request the Analytics Web Service to record the event. No response handling is required, so these requests may be made asynchronously. \r\n\r\n**End Point -** https://analytics.crea.ca/LogEvents.svc/LogEvents \r\n\r\n**Request Arguments**\r\n\r\n|
Argument
|
Type
| Description | Required | Supported Values |\r\n| ------------- | ------------- | ----------- | ----------- | -------------- | \r\n| ListingID | Integer | The [ListingID] parameter in the Analytics Web service is a unique identifier for the record, known as [ListingKey] in the Web API according to RESO standards. | Yes | | \r\n| DestinationID | Integer | ID of the Destination | Yes | Destination ID of the DDF® data feed where the event occurs. |\r\n| EventType | String | Event tracked by analytics | Yes | See Event Types section below. | \r\n| UUID | String | Unique Identifier of the user/device. This ID should be the same for all requests from a single user/device. | Yes | GUID or device identifier with the Destination ID appended.

*Note: UUID’s are tracked in 5-minute windows. If the same UUID creates the identical event within 5 minutes the event is ignored.* | \r\n| IP | IP Address | If available, IP address of the client or device | No | *Note: this parameter is used to resolve geographic data. If it is not supplied this information will not be resolved.* | \r\n| ReferralURL | URL | This URL is validated during the analytics processing. | No | | \r\n| LanguageID | Integer | Language being used by the user | No | 1 = English

2 = French | \r\n\r\n**Event Types**\r\n\r\n| Event | Description | \r\n| ----------- | ----------- | \r\n| View | Event to be triggered when a listing is viewed on a website. | \r\n| Click | This event applies to Third Party websites only.

It should be triggered when the ListingURL (included in the Property resource payload) is clicked. | \r\n| email_realtor | This event applies to Third Party websites only.

It should be triggered when an email inquiring about a particular listing is sent to the REALTOR®. | \r\n\r\n**Example**\r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n
Template \r\n \r\n https://analytics.crea.ca/LogEvents.svc/LogEvents?ListingID={ListingID}&DestinationID={DestinationID}&EventType={EventType}&UUID={UUID}&IP={IP}&ReferralURL={ReferralURL}\r\n\r\n
Example \r\n \r\n https://analytics.crea.ca/LogEvents.svc/LogEvents?ListingID=12830763&DestinationID=355&EventType=view&UUID=6b106320-b422-11e2-9e96-0800200c9a66-355&IP=192.168.1.1&ReferralURL=http://samplesite.com\r\n \r\n
\r\n
\r\n\r\n# OData\r\n\r\n## OData Parameters \r\n\r\nThe following are supported OData query parameters to be used to customize the returned dataset. \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameDescriptionExample
$skipSkips this number of results.\r\n Skip the first 10 records of the Property dataset.

\r\n https://ddfapi.realtor.ca/odata/v1/Property?$skip=10\r\n
$selectSelect the fields to be returned.\r\n Only return the ListingKey and PropertySubType fields.

\r\n https://ddfapi.realtor.ca/odata/v1/Property?$select=ListingKey,PropertySubType\r\n
$filterFilter the results to be returned.\r\n Only return the listings where the ListPrice is greater than $100,000.

\r\n https://ddfapi.realtor.ca/odata/v1/Property?$filter=ListPrice%20gt%20100000\r\n
$topLimits the size of the result set.\r\n Default is 20, maximum is 100. Limit results from the Property dataset to only 2.

\r\n https://ddfapi.realtor.ca/odata/v1/Property?$top=2\r\n
$orderbySort the result by descending or ascending order (either “desc” or “asc”).\r\n Sort order by descending price.

\r\n https://ddfapi.realtor.ca/odata/v1/Property?$orderby=ListPrice%20desc\r\n
\r\n\r\n
\r\n\r\n## OData Operators \r\n\r\nOData defines a set of logical operators that can be used to filter results. Valid operators for DDF® Web API include: \r\n\r\n| Operator | Description | \r\n| ----------- | ----------- |\r\n| eq | Equal | \r\n| ne | Not equal |\r\n| gt | Greater than |\r\n| lt | Less than |\r\n| ge | Greater than or equal |\r\n| le | Less than or equal |\r\n| and | Logical and |\r\n| or | Logical or |\r\n| not | Logical not |\r\n| in | In |\r\n| has | Has |\r\n\r\n*More information on OData operators can be found [here](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete.html#_Toc453752358).*\r\n\r\n
\r\n\r\n## OData Query Functions \r\n\r\n| Function | Description | Example |\r\n| ----------- | ----------- | ----------- |\r\n| any | Search fields where any element of an array is satisfied by a condition. This operand will work with Collection and complex types. | Return listings where there is an option of electric heating.

https[]()://ddfapi.realtor.ca/odata/v1/Property?$filter=Heating/any(a: a eq 'Electric') |\r\n\r\n
\r\n\r\n## Example of Requests\r\n\r\n**Get listings in the where the price is greater than $500,000:**\r\n \r\n\thttps://ddfapi.realtor.ca/odata/v1/Property?$filter=ListPrice gt 500000 \r\n\r\n**Get listings in the dataset in a bounding box defined by latitude and longitude:**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Property?$filter=Latitude lt 50 and Latitude gt 40 and Longitude gt -70 and Longitude lt -80 \r\n\r\n**Get a set of agents in the dataset whose name is not 'John':**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Member?$filter=MemberFirstName ne 'John' \r\n\r\n**Get a set of offices in located in Ontario:**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Office?$filter=OfficeStateOrProvince eq ‘Ontario’ \r\n\r\n**Get the related media for a Property Listing 1234:**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Property?$filter=ListingKey eq '1234'&$select=Media \r\n\r\n**Get properties that are Condo from the Property Endpoint:**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Property?$filter=CommonInterest eq 'Condo/Strata' \r\n\r\n**Get properties that are NOT Condo from the Property Endpoint (\\*This is the preferred method of searching for Freehold properties):**\r\n\r\n https://ddfapi.realtor.ca/odata/v1/Property?$filter=CommonInterest ne 'Condo/Strata' \r\n\r\n**Users are advised to encode the special characters in the filter strings as per [Odata guidelines](https://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents). It is important to use double single quotes to format an apostrophe (i.e ' => '') before encoding the string.**\r\n\r\n**Below are a few examples of special character encoding:**\r\n\r\n| **Original String** | **Encoded String** | \r\n| ----------- | ----------- |\r\n| Chambre immobilière de l'Abitibi-Témiscamingue | Chambre%20immobili%C3%A8re%20de%20l%27%27Abitibi-T%C3%A9miscamingue%0A | \r\n| Northumberland Hills Association of REALTORS® | Northumberland%20Hills%20Association%20of%20REALTORS%C2%AE |\r\n| Greater Montréal Real Estate Board | Greater%20Montr%C3%A9al%20Real%20Estate%20Board |\r\n\r\n# Lead API Endpoint\r\n\r\n## Emails to REALTORS®\r\n\r\nReal Estate Advertising Websites (REAW) are required to use the DDF® lead API, as email addresses are not included in the DDF® Web API. \r\nFor these sites, there’s often an “Email REALTOR®” button. This button should present an online form where the end-user fills out the required \r\ninformation. After completing this form, the REAWs server builds and triggers an email request that will be handled by DDF® Lead API.\r\n\r\nPlease see the [API definition](#tag/Lead) for details on how to call the lead endpoint.\r\n\r\n**NOTE: Member websites using the DDF® are not required to use the lead API\r\n\r\n## Testing Integration\r\n\r\nWhen testing the Lead API Endpoint it is important to set the SupressEmail query parameter to 'true'. This prevents emails from being sent to Realtors®.\r\n\r\nAn example of what the request would look like is below. \r\n\r\n https://ddfapi.realtor.ca/v1/Lead/CreateLead?SuppressEmail=true\r\n\r\n**NOTE: An access token is required to call the lead endpoint. \r\n\r\n# Support and Updates \r\n\r\nIf you have any questions about using the APIs available on the platform, contact support at support@realtor.ca \r\n\r\nAt this time support is only offered in English. ", "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\nPath-style access: ```/odata/v1/Destination/{DestinationKey}```\n\nExample: ```/odata/v1/Destination/1301```\n\nFunction-style access: ```/odata/v1/Destination({DestinationKey})```\n\nExample: ```/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\nPath-style access: ```/odata/v1/Member/{MemberKey}```\n\nExample: ```/odata/v1/Member/14090```\n\nFunction-style access: ```/odata/v1/Member('{MemberKey}')```\n\nExample: ```/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\nPath-style access: ```/odata/v1/Member/MemberReplication```\n\nFunction-style access: ```/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\nPath-style access: ```/odata/v1/Office/{OfficeKey}```\n\nExample: ```/odata/v1/Office/49```\n\n Function-style access: ```/odata/v1/Office('{OfficeKey}')```\n\nExample: ```/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\nPath-style access: ```/odata/v1/Office/OfficeReplication```\n\nFunction-style access: ```/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" } } ], "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/OpenHouse": { "get": { "tags": [ "OpenHouse" ], "summary": "Get a list of open houses", "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.OpenHouse, 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/OpenHouse/{OpenHouseKey}": { "get": { "tags": [ "OpenHouse" ], "summary": "Gets a single open house by OpenHouseKey", "description": "Both methods are valid and return the same result: a single OpenHouse entity identified by its unique OpenHouseKey.\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\nPath-style access: ```/odata/v1/OpenHouse/{OpenHouseKey}```\n\nExample: ```/odata/v1/OpenHouse/1000```\n\nFunction-style access: ```/odata/v1/OpenHouse('{OpenHouseKey}')```\n\nExample: ```/odata/v1/OpenHouse('1000')```", "parameters": [ { "name": "OpenHouseKey", "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.OpenHouse object)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.OpenHouse, 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/Property": { "get": { "tags": [ "Property" ], "summary": "Get a list of Properties", "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.Property, 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/Property/{PropertyKey}": { "get": { "tags": [ "Property" ], "summary": "Get a single Property by PropertyKey", "description": "Both methods are valid and return the same result: a single Property entity identified by its unique PropertyKey.\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\nPath-style access: ```/odata/v1/Property/{PropertyKey}```\n\nExample: ```/odata/v1/Property/123456789```\n\nFunction-style access: ```/odata/v1/Property('{PropertyKey}')```\n\nExample: ```/odata/v1/Property('123456789')```", "parameters": [ { "name": "PropertyKey", "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.Property object)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Property, 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/Property/PropertyReplication()": { "get": { "tags": [ "Property" ], "summary": "Get a list of properties 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\nPath-style access: ```/odata/v1/Property/PropertyReplication```\n\nFunction-style access: ```/odata/v1/Property/PropertyReplication()```\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.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Property, 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/Property/PropertyReplication(DestinationId={DestinationId})": { "get": { "tags": [ "Property" ], "summary": "Get a list of properties for a single destination", "operationId": "odata/v1/Property/PropertyReplication(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.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Property, 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" } } } } } } } }, "components": { "schemas": { "DDF.Core.Entities.Destination": { "type": "object", "properties": { "DestinationId": { "type": "integer", "description": "A unique identifier for this record.", "format": "int32" }, "DestinationName": { "type": "string", "description": "The name of the destination.", "nullable": true }, "DestinationUrl": { "type": "string", "description": "The URL to the destination referenced by this record.", "nullable": true }, "DestinationType": { "enum": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "type": "integer", "description": "The type of destination. i.e. Technology Provider, Partner, etc.", "format": "int32", "nullable": true }, "DestinationStatus": { "enum": [ 1, 2, 3 ], "type": "integer", "description": "The status of the destination. i.e. Active, Inactive, Suspended", "format": "int32", "nullable": true }, "MemberFirstName": { "type": "string", "description": "The first name of the member.", "nullable": true }, "MemberLastName": { "type": "string", "description": "The last name of the member.", "nullable": true }, "MemberKey": { "type": "string", "description": "The unique identifier (MemberKey) of the member who owns the destination.", "nullable": true }, "OriginalEntryTimestamp": { "type": "string", "description": "Date/time the destination record was originally input into the source system (in Zulu time (UTC)).", "format": "date-time", "nullable": true }, "ModificationTimestamp": { "type": "string", "description": "Date/time the destination record was last modified (in Zulu time (UTC)).", "format": "date-time", "nullable": true }, "FullNSP": { "type": "boolean", "description": "A flag indicating that if the destination is Full NSP." } }, "additionalProperties": false }, "DDF.Core.Entities.Media": { "type": "object", "properties": { "MediaKey": { "type": "string", "description": "A unique identifier for this record from the immediate source. This may be a number, or string that can include URI or other forms. This is the system you are connecting to and not necessarily the original source of the record.", "nullable": true, "example": "MediaKey" }, "LongDescription": { "type": "string", "description": "The full description of the object.", "nullable": true, "example": "REALTOR.ca Logo" }, "MediaURL": { "type": "string", "description": "The URI to the media file referenced by this record.", "nullable": true, "example": "https:///ddfcdn.realtor.ca/realtorlogo.png" }, "ModificationTimestamp": { "type": "String", "description": "Date/time the record was last modified (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "2019-08-24T14:15:22Z" }, "Order": { "type": "integer", "description": "The order in which the media object is displayed. Zero is the primary photo per RETS convention.", "format": "int32", "nullable": true, "example": 1 }, "PreferredPhotoYN": { "type": "boolean", "description": "When set to true, the media record in question is the preferred photo. This will typically mean the photo to be shown when only one of the photos is to be displayed.", "nullable": true, "example": true }, "ResourceRecordId": { "type": "string", "description": "The well known identifier of the related record from the source resource.", "nullable": true, "example": "RealtorLogo.png" }, "ResourceRecordKey": { "type": "string", "description": "The primary key of the related record from the source resource.", "nullable": true, "example": "1234" }, "ResourceName": { "type": "String", "description": "The resource or table of the listing or other record the media relates to. i.e. Property, Member, Office, etc.", "format": "Enum: ResourceName", "nullable": true, "example": "Member" }, "MediaCategory": { "type": "String", "description": "Category describing the , Photos, Documents, Video, Unbranded Virtual Tour, Branded Virtual Tour, Floor Plan, Logo", "format": "Enum: MediaCategory", "nullable": true, "example": "Photo" } }, "additionalProperties": false }, "DDF.Core.Entities.Member": { "type": "object", "properties": { "MemberKey": { "type": "string", "description": "A unique identifier for this record.", "nullable": true, "example": "MemberKey" }, "MemberMlsId": { "type": "string", "description": "The local, well-known identifier. This value may not be unique, specifically in the case of aggregation systems, this value should be the identifier from the original system.", "nullable": true, "example": "MemberMlsId" }, "OfficeKey": { "type": "string", "description": "The unique identifier of the member's office.", "nullable": true, "example": "OfficeKey" }, "OfficeNationalAssociationId": { "type": "string", "description": "The national association ID of the office. i.e. In Canada, this is the Organization ID of the Office.", "nullable": true, "example": "111111" }, "JobTitle": { "type": "string", "description": "The title or position of the member within their organization.", "nullable": true, "example": "JobTitle" }, "MemberAORKey": { "type": "string", "description": "A system unique identifier. This is the Board ID of the Member's Primary Board or Association of REALTORS.", "nullable": true, "example": "MemberAORKey" }, "MemberAddress1": { "type": "string", "description": "The street number, direction, name and suffix of the member.", "nullable": true, "example": "MemberAddress1" }, "MemberAddress2": { "type": "string", "description": "The unit/suite number of the member.", "nullable": true, "example": "MemberAddress2" }, "MemberFax": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberFax" }, "MemberFirstName": { "type": "string", "description": "The first name of the Member.", "nullable": true, "example": "MemberFirstName" }, "MemberLastName": { "type": "string", "description": "The last name of the Member.", "nullable": true, "example": "MemberLastName" }, "MemberMiddleName": { "type": "string", "description": "The middle name of the Member.", "nullable": true, "example": "MemberMiddleName" }, "MemberNamePrefix": { "type": "string", "description": "Prefix to the name (e.g. Dr. Mr. Ms. etc.)", "nullable": true, "example": "MemberNamePrefix" }, "MemberNameSuffix": { "type": "string", "description": "Suffix to the surname (e.g. Esq., Jr., III etc.)", "nullable": true, "example": "MemberNameSuffix" }, "MemberNationalAssociationId": { "type": "string", "description": "The national association ID of the member. i.e. In Canada this is the CREA ID of the member.", "nullable": true, "example": "MemberNationalAssociationId" }, "MemberNickname": { "type": "string", "description": "An alternate name used by the Member, usually as a substitute for the first name.", "nullable": true, "example": "MemberNickname" }, "MemberOfficePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberOfficePhone" }, "MemberOfficePhoneExt": { "type": "string", "description": "The extension of the given phone number (if applicable).", "nullable": true, "example": "MemberOfficePhoneExt" }, "MemberPostalCode": { "type": "string", "description": "The postal code of the member.", "nullable": true, "example": "MemberPostalCode" }, "MemberPager": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberPager" }, "MemberTollFreePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberTollFreePhone" }, "ModificationTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OriginalEntryTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was originally input into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "MemberCity": { "type": "string", "description": "The city of the member.", "nullable": true, "example": "MemberCity" }, "MemberAOR": { "type": "String", "description": "The Member's Primary Board Name or Association's Name of REALTORS.", "format": "Enum: AOR", "nullable": true, "example": "Affiliate" }, "MemberCountry": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" }, "MemberDesignation": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Designations and certifications acknowledging experience and expertise in various real estate sectors are awarded by CREA and each affiliated group upon completion of required courses", "format": "Enum: MemberDesignation", "nullable": true, "example": "AccreditedBuyerRepresentative" }, "MemberLanguages": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The languages the member speaks.", "format": "Enum: MemberLanguages", "nullable": true, "example": "Chaldean" }, "MemberSocialMedia": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.SocialMedia" }, "description": "A collection of the types of social media fields available for this member. The collection includes the type of system and other details pertinent about social media.", "nullable": true }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Member.", "nullable": true }, "MemberStateOrProvince": { "type": "String", "description": "The state or province in which the member is addressed.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "MemberStatus": { "type": "String", "description": "The current status of the member.", "format": "Enum: MemberStatus", "nullable": true, "example": "Active" }, "MemberType": { "type": "String", "description": "The type of member. i.e. Agent, Broker, Office Manager, Appraiser, Assistants, MLO, Realtor, Association Staff, MLS Staff, etc.", "format": "Enum: MemberType", "nullable": true, "example": "GlobalAffiliate" }, "MemberEmailYN": { "type": "boolean", "description": "This flag signifies the availability of a REALTOR®’s email address. It is intended for clients who use the Lead API endpoint to communicate with Realtors. If the flag is false, these clients should turn off the email REALTOR® function for the respective REALTOR®. Clients not using Lead API endpoint can disregard this field.", "nullable": true } }, "additionalProperties": false }, "DDF.Core.Entities.MemberIdentifier": { "type": "object", "properties": { "MemberKey": { "type": "string", "description": "A unique identifier for this record.", "nullable": true, "example": "12345" }, "ModificationTimestamp": { "type": "string", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "date-time", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" } }, "additionalProperties": false }, "DDF.Core.Entities.Office": { "type": "object", "properties": { "OfficeKey": { "type": "string", "description": "A unique identifier for this record from the immediate source. This is the string only key and used as an alternative to the OfficeKeyNumeric fields.", "nullable": true, "example": "OfficeKey" }, "OfficeMlsId": { "type": "string", "description": "The local, well-known identifier. This value may not be unique, specifically in the case of aggregation systems, this value should be the identifier from the original system.", "nullable": true, "example": "OfficeMlsId" }, "OfficeAORKey": { "type": "string", "description": "A system unique identifier. This is the Board ID of the Office's Primary Board or Association of REALTORS.", "nullable": true, "example": "OfficeAORKey" }, "OfficeNationalAssociationId": { "type": "string", "description": "The national association ID of the office. i.e. In Canada, this is the CREA Organization ID of the Office.", "nullable": true, "example": "OfficeNationalAssociationId" }, "FranchiseNationalAssociationId": { "type": "string", "description": "The national association ID of the Franchisor. In Canada this would be the CREAID", "nullable": true, "example": "0" }, "OfficeBrokerNationalAssociationId": { "type": "string", "description": "The national association Id of the Brokerage Owner. In Canada this would be the CREAID", "nullable": true, "example": "OfficeBrokerNationalAssociationId" }, "OfficeAddress1": { "type": "string", "description": "The street number, direction, name and suffix of the office.", "nullable": true, "example": "OfficeAddress1" }, "OfficeAddress2": { "type": "string", "description": "The unit/suite number of the office.", "nullable": true, "example": "OfficeAddress2" }, "OfficeCity": { "type": "string", "description": "The city of the office.", "nullable": true, "example": "OfficeCity" }, "OfficeFax": { "type": "string", "description": "North American 10 digit fax numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "OfficeFax" }, "OfficeName": { "type": "string", "description": "The legal name of the brokerage.", "nullable": true, "example": "OfficeName" }, "OfficePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "OfficePhone" }, "OfficePhoneExt": { "type": "string", "description": "The extension of the given phone number (if applicable).", "nullable": true, "example": "OfficePhoneExt" }, "OfficePostalCode": { "type": "string", "description": "The postal code of the office.", "nullable": true, "example": "OfficePostalCode" }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Office.", "nullable": true }, "OfficeSocialMedia": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.SocialMedia" }, "description": "A collection of the types of social media fields available for this office. The collection includes the type of system and other details pertinent about social media", "nullable": true }, "ModificationTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OriginalEntryTimestamp": { "type": "String", "description": "Date/time the office record was originally input into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OfficeType": { "type": "String", "description": "The type of business conducted by the office. i.e. Real Estate, Appraiser, etc.", "format": "Enum: OfficeType", "nullable": true, "example": "Real Estate" }, "OfficeStateOrProvince": { "type": "String", "description": "The state or province in which the office is located.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "OfficeAOR": { "type": "String", "description": "The Office's Board or Association of REALTORS.", "format": "Enum: AOR", "nullable": true, "example": "Affiliate" }, "OfficeStatus": { "type": "String", "description": "Is the office active, inactive or under disciplinary action.", "format": "Enum: OfficeStatus", "nullable": true, "example": "Active" }, "OfficeCountry": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" } }, "additionalProperties": false }, "DDF.Core.Entities.OfficeIdentifier": { "type": "object", "properties": { "OfficeKey": { "type": "string", "description": "A unique identifier for this record from the immediate source. This is the numeric only key and used as an alternative to the OfficeKey fields.", "nullable": true, "example": "12345" }, "ModificationTimestamp": { "type": "string", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "date-time", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" } }, "additionalProperties": false }, "DDF.Core.Entities.OpenHouse": { "type": "object", "properties": { "OpenHouseKey": { "type": "string", "description": "A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "ListingKey": { "type": "string", "description": "A unique identifier for the listing record related to this Open House.", "nullable": true, "example": "12345" }, "ListingId": { "type": "string", "description": "The well known identifier for the listing related to this Open House.", "nullable": true, "example": "1" }, "OpenHouseDate": { "type": "string", "description": "The date on which the open house will occur.", "format": "date-time", "nullable": true, "example": "2021-01-01" }, "OpenHouseStartTime": { "type": "string", "description": "The time the open house begins (in local time).", "nullable": true, "example": "12:00:00.00" }, "OpenHouseEndTime": { "type": "string", "description": "The time the open house ends (in local time).", "nullable": true, "example": "12:00:00.00" }, "OpenHouseRemarks": { "type": "string", "description": "Comments, instructions or information about the open house.", "nullable": true, "example": "OpenHouseRemarks" }, "OpenHouseType": { "type": "String", "description": "The type of open house. i.e. Public, Broker, Office, Association, Private (invitation or targeted publication).", "format": "Enum: OpenHouseType", "nullable": true, "example": "Public" }, "OpenHouseStatus": { "type": "String", "description": "Status of the open house, i.e. Active, Cancelled, Ended.", "format": "Enum: OpenHouseStatus", "nullable": true, "example": "Active" }, "LivestreamOpenHouseURL": { "type": "String", "description": "A link to an open house livestream event", "nullable": true, "example": "\"https://www.youtube.com/watch?v=i-09UtAH10A\"" } }, "additionalProperties": false }, "DDF.Core.Entities.Property": { "type": "object", "properties": { "ListingKey": { "type": "string", "description": "A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "PropertySubType": { "type": "String", "description": "A list of types of residential and residential lease properties, i.e. Condo, etc. Or a list of Sub Types for Mobile, such as Expando, Manufactured, Modular, etc.", "format": "Enum: PropertySubType", "nullable": true, "example": "Business" }, "DocumentsAvailable": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the Documents available for the property. Knowing what documents are available for the property is valuable information.", "format": "Enum: DocumentsAvailable", "nullable": true, "example": [ "Floor Plan, Site Plan" ] }, "LeaseAmount": { "type": "number", "description": "The amount of any lease the business pays for it's current location.", "format": "double", "nullable": true, "example": 1000 }, "LeaseAmountFrequency": { "type": "String", "description": "The frequency of the LeaseAmount is paid. Monthly, weekly, annual, etc.", "format": "Enum: FeeFrequency", "nullable": true, "example": "Monthly" }, "BusinessType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The type of business being sold. Retail, Recreation, Restaurant, Residential, etc.", "format": "Enum: BusinessType", "nullable": true, "example": [ "Agriculture, Forestry" ] }, "LeasePerUnit": { "type": "String", "description": "A pick list of the unit of measurement used for the lease per unit.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "Acres" }, "PricePerUnit": { "type": "String", "description": "A pick list of the unit of measurement used for the price per unit.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "square feet" }, "WaterBodyName": { "type": "string", "description": "The name, if known, of the body of water on which the property is located. (E.g., lake name, river name, ocean name, sea name, canal name).", "nullable": true, "example": "WaterBodyName" }, "View": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A view as seen from the listed property.", "format": "Enum: View", "nullable": true, "example": [ "Ocean view" ] }, "NumberOfBuildings": { "type": "integer", "description": "Total number of separate buildings included in the income property.", "format": "int32", "nullable": true, "example": 1 }, "NumberOfUnitsTotal": { "type": "integer", "description": "Total number of units included in the income property, occupied or unoccupied.", "format": "int32", "nullable": true, "example": 45 }, "LotFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the lot included in the sale/lease.", "format": "Enum: LotFeatures", "nullable": true, "example": [ "Acreage" ] }, "LotSizeArea": { "type": "number", "description": "The total area of the lot. See Lot Size Units for the units of measurement (Square Feet, Square Meters, Acres, etc.).", "format": "double", "nullable": true, "example": 1 }, "LotSizeDimensions": { "type": "string", "description": "The dimensions of the lot minimally represented as length and width (i.e. 250 x 180) or a measurement of all sides of the polygon representing the property lines of the property. i.e. 30 x 50 x 120 x 60 x 22.", "nullable": true, "example": "60 X 262" }, "LotSizeUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "Acres" }, "PoolFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the pool included in the sale/lease.", "format": "Enum: PoolFeatures", "nullable": true, "example": [ "On Ground Pool" ] }, "RoadSurfaceType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Pick list of types of surface of the Road to access the property. The surface of the road(s) for access to the property is an important factor in determining value of the property and it’s appropriateness for intended use.", "format": "Enum: RoadSurfaceType", "nullable": true, "example": [ "Paved road" ] }, "CurrentUse": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of current use of the property. The current use of the property is an important factor in understanding the overall condition of the land and determining it's appropriateness for intended use.", "format": "Enum: CurrentUse", "nullable": true, "example": [ "Recreational" ] }, "PossibleUse": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of possible or best uses of the property. Probable use gives a good indication of what the best use or potential use of the property could be. i.e. Primary, Vacation, Investment, Rental, Retirement.", "format": "Enum: PossibleUse", "nullable": true, "example": [ "Agriculture - active" ] }, "AnchorsCoTenants": { "type": "string", "description": "The main or most notable tenants as well as other tenants of the shopping center or mall in which the commercial property is located.", "nullable": true, "example": "AnchorsCoTenant" }, "WaterfrontFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the features or description of the waterfront on which the property is located.", "format": "Enum: WaterfrontFeatures", "nullable": true }, "CommunityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features related to, or available within, the community.", "format": "Enum: CommunityFeatures", "nullable": true }, "FrontageLengthNumeric": { "type": "number", "description": "A numeric representation of the length of the frontage.", "format": "double", "nullable": true, "example": 400 }, "FrontageLengthNumericUnits": { "type": "String", "description": "The unit of measurement used for the value in the FrontageLengthNumeric fields. e.g. feet, meters, etc.", "format": "Enum: LinearUnits", "nullable": true }, "Fencing": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of types of fencing at the property.", "format": "Enum: Fencing", "nullable": true }, "Appliances": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the appliances that will be included in the sale/lease of the property.", "format": "Enum: Appliances", "nullable": true, "example": [ "Dryer - Electric" ] }, "OtherEquipment": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of other equipment that will be included in the sale of the property. ", "format": "Enum: OtherEquipment", "nullable": true, "example": [ "Unknown" ] }, "SecurityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the security features included in the sale/lease.", "format": "Enum: SecurityFeatures", "nullable": true }, "TotalActualRent": { "type": "number", "description": "Total actual rent currently being collected from tenants of the income property.", "format": "double", "nullable": true, "example": 300 }, "ExistingLeaseType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Information about the status of the existing lease on the property. i.e. Net, Gross, Percentage,, etc.", "format": "Enum: ExistingLeaseType", "nullable": true, "example": [ "Percentage" ] }, "AssociationFee": { "type": "number", "description": "A fee paid by the homeowner to the Home Owners Association which is used for the upkeep of the common area, neighborhood or other association related benefits.", "format": "double", "nullable": true, "example": 10 }, "AssociationFeeFrequency": { "type": "String", "description": "The frequency the Association fee is paid. For example, Weekly, Monthly, Annually, Bi-Monthly, One Time, etc.", "format": "Enum: FeeFrequency", "nullable": true, "example": "Monthly" }, "AssociationName": { "type": "string", "description": "The name of the Home Owners Association.", "nullable": true, "example": "AssociationName" }, "AssociationFeeIncludes": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Services included with the association fee. For example Landscaping, Trash, Water, etc.", "format": "Enum: AssociationFeeIncludes", "nullable": true, "example": [ "Management" ] }, "OriginalEntryTimestamp": { "type": "String", "description": "The date and time the record was inserted into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "ModificationTimestamp": { "type": "String", "description": "The date and time the record was last updated in the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "AvailabilityDate": { "type": "string", "description": "The date the property will be available for possession/occupation.", "format": "date-time", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "ListingId": { "type": "string", "description": "The well known identifier for the listing. The value may be identical to that of the Listing Key, but the Listing ID is intended to be the value used by a human to retrieve the information about a specific listing. In a multiple originating system or a merged system, this value may not be unique and may require the use of the provider system to create a synthetic unique value.", "nullable": true, "example": "00001" }, "ListAgentNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the primary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId2": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId3": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "InternetEntireListingDisplayYN": { "type": "boolean", "description": "A yes/no field that states the seller has allowed the listing to be displayed on Internet sites.", "nullable": true, "example": true }, "StandardStatus": { "type": "String", "description": "The status of the listing. This is a Single Select field.", "format": "Enum: StandardStatus", "nullable": true }, "StatusChangeTimestamp": { "type": "String", "description": "The transactional timestamp automatically recorded by the MLS system representing the date/time the listing's status was last changed (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "PublicRemarks": { "type": "string", "description": "Text remarks that may be displayed to the public.", "nullable": true, "example": "PRIME COMMERCIAL LOCATION." }, "ListPrice": { "type": "number", "description": "The current price of the property as determined by the seller and the seller's broker. For auctions this is the minimum or reserve price.", "format": "double", "nullable": true, "example": 800000 }, "Inclusions": { "type": "string", "description": "Portable elements of the property that will be included in the sale.", "nullable": true, "example": "Inclusions" }, "ListOfficeKey": { "type": "string", "description": "A system unique identifier. This is the OfficeKey that the property belongs to.", "nullable": true, "example": "ListOfficeKey" }, "CoListOfficeKey": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeKey" }, "CoListOfficeKey2": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true }, "CoListOfficeKey3": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeKey3" }, "ListOfficeNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the primary OfficeKey that the property belongs to.", "nullable": true, "example": "ListOfficeNationalAssociationId" }, "CoListOfficeNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId" }, "CoListOfficeNationalAssociationId2": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId2" }, "CoListOfficeNationalAssociationId3": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId3" }, "CoListAgentKey": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey" }, "CoListAgentKey2": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey2" }, "CoListAgentKey3": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey3" }, "ListAgentKey": { "type": "string", "description": "A system unique identifier. This is the MemberKey that the property belongs to.", "nullable": true, "example": "ListAgentKey" }, "InternetAddressDisplayYN": { "type": "boolean", "description": "A yes/no field that states the seller has allowed the listing address to be displayed on Internet sites.", "nullable": true, "example": true }, "ListingURL": { "type": "string", "description": "Provides a link to the specific listing on realtor.ca. The UTM codes should be removed when performing any ODATA operation with this field.", "nullable": true }, "OriginatingSystemName": { "type": "string", "description": "The name of the Originating record provider. Most commonly the name of the MLS. The place where the listing is originally input by the member. The legal name of the company.", "nullable": true }, "PhotosCount": { "type": "integer", "description": "The total number of pictures or photos included with the listing.", "format": "int32", "nullable": true }, "PhotosChangeTimestamp": { "type": "String", "description": "System generated timestamp of when the last update or change to the photos for this listing was made (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "CommonInterest": { "type": "String", "description": "Common Interest is a type of ownership in a property that is composed of an individual lot or unit and a share of the ownership or use of common areas.", "format": "Enum: CommonInterest", "nullable": true, "example": "Business" }, "ListAOR": { "type": "String", "description": "The responsible board or association of REALTORS® for this listing.", "format": "Enum: AOR", "nullable": true, "example": "Fredericton" }, "ListAORKey": { "type": "string", "description": "A system unique identifier. Specifically, in aggregation systems, the ListAOR Key is the unique identifier of the primary board or association of REALTORS providing the property data, from the system where the record was retrieved.", "nullable": true }, "UnparsedAddress": { "type": "string", "description": "The UnparsedAddress is a text representation of the address with the full civic location as a single entity. It may optionally include any of City, StateOrProvince, PostalCode and Country.", "nullable": true, "example": "UnparsedAddress" }, "PostalCode": { "type": "string", "description": "The postal code portion of a street or mailing address.", "nullable": true, "example": "PostalCode" }, "SubdivisionName": { "type": "string", "description": "A neighborhood, community, complex or builder tract.", "nullable": true, "example": "SubdivisionName" }, "StateOrProvince": { "type": "String", "description": "Text field containing the accepted postal abbreviation for the state or province.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "StreetDirPrefix": { "type": "String", "description": "The direction indicator that precedes the listed property's street name.", "format": "Enum: StreetDir", "nullable": true, "example": "North" }, "StreetDirSuffix": { "type": "String", "description": "The direction indicator that follows a listed property's street address.", "format": "Enum: StreetDir", "nullable": true, "example": "South" }, "StreetName": { "type": "string", "description": "The street name portion of a listed property's street address.", "nullable": true, "example": "StreetName" }, "StreetNumber": { "type": "string", "description": "The street number portion of a listed property's street address. In some areas the street number may contain non-numeric characters. This field can also contain extensions and modifiers to the street number, such as \"1/2\" or \"-B\". This street number field should not include Prefixes, Direction or Suffixes.", "nullable": true, "example": "StreetNumber" }, "StreetSuffix": { "type": "String", "description": "The suffix portion of a listed property's street address.", "format": "Enum: StreetSuffix", "nullable": true }, "UnitNumber": { "type": "string", "description": "Text field containing the number or portion of a larger building or complex. Unit Number should appear following the street suffix or, if it exists, the street suffix direction, in the street address. Examples are: \"APT G\", \"55\", etc.", "nullable": true, "example": "123" }, "Country": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" }, "City": { "type": "string", "description": "The city in listing address.", "nullable": true, "example": "City" }, "Directions": { "type": "string", "description": "Driving directions to the property.", "nullable": true, "example": "Directions" }, "Latitude": { "type": "number", "description": "The geographic latitude of some reference point on the property, specified in degrees and decimal parts. Positive numbers must not include the plus symbol.", "format": "double", "nullable": true }, "Longitude": { "type": "number", "description": "The geographic longitude of some reference point on the property, specified in degrees and decimal parts. Positive numbers must not include the plus symbol.", "format": "double", "nullable": true }, "CityRegion": { "type": "string", "description": "A sub-section or area of a defined city. Examples would be Yorkville in Toronto, ON, Fairview in Vancouver, BC", "nullable": true, "example": "Parkdale" }, "MapCoordinateVerifiedYN": { "type": "String", "description": "This flag is deprecated and should not be used by clients. Instead, use the GeoCodeManualYN flag to determine whether geocoordinates were manually provided by Boards or Members.", "format": "Enum: Boolean", "nullable": true, "readOnly": true, "example": true }, "GeocodeManualYN": { "type": "boolean", "description": "This flag indicates whether the geocoordinates in the response were manually provided, such as by Boards or Members. If the flag is set to false, users can decide whether to geocode those listings themselves or review them.", "nullable": true, "example": true }, "ParkingTotal": { "type": "integer", "description": "The total number of parking spaces included in the sale.", "format": "int32", "nullable": true, "example": 1 }, "YearBuilt": { "type": "integer", "description": "The year that an occupancy permit is first granted for the house or other local measure of initial habitability of the build.", "format": "int32", "nullable": true, "example": 2003 }, "BathroomsPartial": { "type": "integer", "description": "The number of partial bathrooms in the property being sold/leased.", "format": "int32", "nullable": true, "example": 1 }, "BathroomsTotalInteger": { "type": "integer", "description": "The simple sum of the number of bathrooms.", "format": "int32", "nullable": true, "example": 2 }, "BedroomsTotal": { "type": "integer", "description": "The total number of bedrooms in the dwelling.", "format": "int32", "nullable": true, "example": 2 }, "BuildingAreaTotal": { "type": "number", "description": "Total area of the structure. Includes both finished and unfinished areas.", "format": "double", "nullable": true, "example": 2000 }, "BuildingAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "square feet" }, "BuildingFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Features or amenities of the building or business park.", "format": "Enum: BuildingFeatures", "nullable": true, "example": [ "Laundry Facility" ] }, "AboveGradeFinishedArea": { "type": "number", "description": "Finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "AboveGradeFinishedAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Square Feet" }, "AboveGradeFinishedAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "AboveGradeFinishedAreaMinimum": { "type": "number", "description": "The minimum finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "AboveGradeFinishedAreaMaximum": { "type": "number", "description": "The maximum finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedArea": { "type": "number", "description": "The finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Square Feet" }, "BelowGradeFinishedAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "BelowGradeFinishedAreaMinimum": { "type": "number", "description": "The minimum finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedAreaMaximum": { "type": "number", "description": "The maximum finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "LivingArea": { "type": "number", "description": "The total livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "LivingAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Acres" }, "LivingAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "LivingAreaMinimum": { "type": "number", "description": "The minimum livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "LivingAreaMaximum": { "type": "number", "description": "The maximum livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "FireplacesTotal": { "type": "integer", "description": "The total number of fireplaces included in the property.", "format": "int32", "nullable": true, "example": 1 }, "FireplaceYN": { "type": "boolean", "description": "Does the property include a fireplace.", "nullable": true, "example": true }, "FireplaceFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the fireplace(s) included in the sale/lease.", "format": "Enum: FireplaceFeatures", "nullable": true, "example": [ "Conventional" ] }, "ArchitecturalStyle": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the style of the structure. For example, Victorian, Ranch, Craftsman, etc.", "format": "Enum: ArchitecturalStyle", "nullable": true, "example": [ "Hillside Bungalow" ] }, "Heating": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the heating features of the property.", "format": "Enum: Heating", "nullable": true, "example": [ "Heat Pump" ] }, "FoundationDetails": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of foundation on which the property sits.", "format": "Enum: FoundationDetails", "nullable": true, "example": [ "Wood" ] }, "Basement": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of information and features about the basement. i.e. None/Slab, Finished, Partially Finished, Crawl Space, Dirt, Outside Entrance, Radon Mitigation", "format": "Enum: Basement", "nullable": true, "example": [ "Full" ] }, "ExteriorFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the exterior of the property included in the sale/lease.", "format": "Enum: ExteriorFeatures", "nullable": true, "example": [ "Steel" ] }, "Flooring": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of flooring found within the property.", "format": "Enum: Flooring", "nullable": true, "example": [ "Concrete" ] }, "ParkingFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the parking included in the sale/lease.", "format": "Enum: ParkingFeatures", "nullable": true, "example": [ "Attached Garage" ] }, "Cooling": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the cooling or air conditioning features of the property.", "format": "Enum: Cooling", "nullable": true, "example": [ "Central air conditioning" ] }, "PropertyCondition": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the condition of the property and any structures included in the sale.", "format": "Enum: PropertyCondition", "nullable": true, "example": [ "New" ] }, "Roof": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the type or style of roof. For example Spanish Tile, Composite, Shake, etc.", "format": "Enum: Roof", "nullable": true, "example": [ "Conventional" ] }, "ConstructionMaterials": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the materials that were used in the construction of the property.", "format": "Enum: ConstructionMaterials", "nullable": true, "example": [ "Insulbrick" ] }, "Rooms": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.PropertyRoom" }, "description": "A collection of types of rooms and details/features about the given room.", "nullable": true }, "Stories": { "type": "number", "description": "The number of floors in the property being sold.", "format": "double", "nullable": true, "example": 3 }, "PropertyAttachedYN": { "type": "boolean", "description": "A flag indicating that the primary structure is attached to another structure that is not included in the sale. i.e. one unit of a duplex. As with all flags, the field may be null.", "nullable": true }, "AccessibilityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list or description of the accessibility features included in the sale/lease.", "format": "Enum: AccessibilityFeatures", "nullable": true }, "BedroomsAboveGrade": { "type": "integer", "description": "The total number of bedrooms within the structure that is above ground.", "format": "int32", "nullable": true, "example": 3 }, "BedroomsBelowGrade": { "type": "integer", "description": "The total number of bedrooms within the structure that is below ground.", "format": "int32", "nullable": true, "example": 2 }, "Zoning": { "type": "string", "description": "A division of the city into areas of different permissible land uses. This Zone field should be used for the short code that is commonly used. For full textual descriptions please use the ZoningDescription field.", "nullable": true, "example": "Zoning" }, "ZoningDescription": { "type": "string", "description": "A list of descriptions of the zoning of the property. The zoning codes are often non-descriptive and variant. Zoning Description is a more descriptive form of the zoning for the property, i.e. Agricultural, Residential, Rezone Possible, etc. Specific zone codes must be added to the Zoning field.", "nullable": true, "example": "ZoningDescription" }, "TaxAnnualAmount": { "type": "number", "description": "The annual property tax amount as of the last assessment made by the taxing authority.", "format": "double", "nullable": true, "example": 3000 }, "TaxBlock": { "type": "string", "description": "A type of legal description for land in developed areas where streets or other rights-of-ways delineate large parcels of land referred to as divided into lots on which homes or other types of developments are built.", "nullable": true, "example": "TaxBlock" }, "TaxLot": { "type": "string", "description": "A type of legal description for land in developed areas where streets or other rights-of-ways delineate large parcels of land referred to as divided into lots on which homes or other types of developments are built.", "nullable": true, "example": "TaxLot" }, "TaxYear": { "type": "integer", "description": "The year in with the last assessment of the property value/tax was made.", "format": "int32", "nullable": true, "example": 2021 }, "StructureType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The type of structure that the property completely or partially encompasses. For example, House or Cabin are the overall structure and typically sold or leased as a whole.", "format": "Enum: StructureType", "nullable": true, "example": [ "House" ] }, "ParcelNumber": { "type": "string", "description": "A number used to uniquely identify a parcel or lot. This number is typically issued by the county or county assessor. The AP number format varies from county to county. It is recommended that all Parcel Numbers be transmitted without dashes or hyphens.", "nullable": true, "example": "029-005-370" }, "Utilities": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the utilities for the property being sold/leased.", "format": "Enum: Utilities", "nullable": true, "example": [ "Sewer" ] }, "IrrigationSource": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The source which the property receives its water for irrigation.", "format": "Enum: IrrigationSource", "nullable": true, "example": [ "Flood" ] }, "WaterSource": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the source(s) of water for the property.", "format": "Enum: WaterSource", "nullable": true, "example": [ "Municipal water" ] }, "Sewer": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the sewer or septic features of the property.", "format": "Enum: Sewer", "nullable": true, "example": [ "No sewage system" ] }, "Electric": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of electric-service related features of the property (e.g. 110 Volt, 3 Phase, 220 Volt, RV Hookup).", "format": "Enum: Electric", "nullable": true, "example": [ "220v Entry", "600 Amp Service" ] }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Property.", "nullable": true } }, "additionalProperties": false }, "DDF.Core.Entities.PropertyIdentifier": { "type": "object", "properties": { "ListingKey": { "type": "string", "description": "A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "ModificationTimestamp": { "type": "string", "description": "The date and time the record was last updated in the source system (in Zulu time (UTC)).", "format": "date-time", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" } }, "additionalProperties": false }, "DDF.Core.Entities.PropertyRoom": { "type": "object", "properties": { "RoomKey": { "type": "string", "description": "A unique identifier for this record.", "nullable": true, "example": "12345" }, "ListingId": { "type": "string", "description": "This is the foreign ID relating to the Property Resource. The well known identifier for the listing.", "nullable": true, "example": "ListingId" }, "ListingKey": { "type": "string", "description": "This is the foreign key relating to the property resource. A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "ModificationTimestamp": { "type": "String", "description": "Date/time this record was last modified (in Zulu time (UTC)).", "format": "date-time", "example": "\"2021-01-01T00:00:00.000Z\"" }, "RoomDescription": { "type": "string", "description": "A textual description of the given room.", "nullable": true, "example": "RoomDescription" }, "RoomDimensions": { "type": "string", "description": "A textual description of the dimensions of the given room.", "nullable": true, "example": "RoomDimensions" }, "RoomLength": { "type": "number", "description": "A numeric representation of the length of the given room. See the RoomLengthWidthUnits for the unit of measurement used for the length and width.", "format": "double", "nullable": true, "example": 10 }, "RoomLevel": { "type": "String", "description": "The level within the dwelling on which the given room is located.", "format": "Enum: RoomLevel", "nullable": true, "example": "Second level" }, "RoomWidth": { "type": "number", "description": "A numeric representation of the width of the given room.", "format": "double", "nullable": true, "example": 10 }, "RoomLengthWidthUnits": { "type": "String", "description": "The unit of measurement used for the value in the RoomLength and the RoomWidth fields. e.g. feet, meters, etc.", "format": "Enum: LinearUnits", "nullable": true, "example": "Square feet" }, "RoomType": { "type": "String", "description": "The type of room being described by the other fields in the PropertyRooms resource.", "format": "Enum: RoomType", "nullable": true, "example": "Living room" } }, "additionalProperties": false }, "DDF.Core.Entities.SocialMedia": { "type": "object", "properties": { "SocialMediaKey": { "type": "string", "description": "The local, well-known identifier. This value may not be unique, specifically in the case of aggregation systems, this value should be the identifier from the original system.", "nullable": true, "example": "SocialMediaKey" }, "ResourceRecordKey": { "type": "string", "description": "The primary key of the related record from the source resource. For example the ListingKey, MemberKey, OfficeKey, etc. This is a foreign key from the resource selected in the ResourceName field.", "nullable": true, "example": "12345" }, "SocialMediaType": { "type": "String", "description": "The type of sites, blog, social media, the Member URL or ID is referring to. i.e. Website, FaceBook, LinkedIn, Twitter, Instagram, etc.", "format": "Enum: SocialMediaType", "nullable": true, "example": "FaceBook" }, "ModificationTimestamp": { "type": "String", "description": "The transactional timestamp automatically recorded by the MLS system representing the date/time the media record was last modified (in Zulu time (UTC)).", "format": "date-time", "example": "\"2021-01-01T00:00:00.000Z\"" }, "ResourceName": { "type": "String", "description": "The resource or table of the listing or other record the media relates to. i.e. Property, Member, Office, etc.", "format": "Enum: ResourceName", "nullable": true }, "SocialMediaUrlOrId": { "type": "string", "description": "The website URL or ID of social media site or account of the member.", "nullable": true, "example": "\"SocialMediaUrlOrId\"" } }, "additionalProperties": false }, "DDF.Core.Models.CustomOdataError": { "type": "object", "properties": { "error": { "$ref": "#/components/schemas/DDF.Core.Models.Error" } }, "additionalProperties": false }, "DDF.Core.Models.Error": { "type": "object", "properties": { "details": { "type": "string", "nullable": true }, "message": { "type": "string", "nullable": true }, "code": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DDF.Core.Models.LeadModel": { "required": [ "Culture", "MemberKey", "ListingKey", "SenderName", "SenderEmailAddress", "PreferredMethodContact", "Message" ], "type": "object", "properties": { "Culture": { "type": "string", "description": "The culture of the lead. Either en-CA or fr-CA. Default value is en-CA", "example": "en-CA" }, "MemberKey": { "type": "string", "description": "The key of the related member for this lead.", "example": "1234567" }, "ListingKey": { "type": "string", "description": "The key of the related listing for this lead.", "example": "12345678" }, "SenderName": { "type": "string", "description": "The name of the lead.", "example": "SenderName" }, "SenderEmailAddress": { "type": "string", "description": "The email address of the lead.", "example": "SenderEmailAddress@email.com" }, "SenderPhoneNumber": { "type": "integer", "description": "The phone number of the lead. Required if PrefferedMethodContact is phone or text or if SenderPhoneExtension has a value.", "format": "int64", "nullable": true, "example": 1112223333 }, "PreferredMethodContact": { "type": "string", "description": "The preffered method of contact for the lead. Either email, phone or text", "example": "email" }, "SenderPhoneExtension": { "type": "integer", "description": "The extension of the leads phone number.", "format": "int32", "nullable": true, "example": 4444 }, "Message": { "type": "string", "description": "The leads message to the member. This field has a 500 character limit.", "example": "Message" } }, "additionalProperties": false }, "DDF.Core.Models.LeadResponse": { "type": "object", "properties": { "details": { "type": "string", "nullable": true }, "message": { "type": "string", "nullable": true }, "code": { "type": "string", "nullable": true }, "success": { "type": "boolean" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Destination" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Destination" }, "nullable": true }, "@odata.nextLink": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/DDF.Core.Entities.Destination?skip=1" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Member" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Member" }, "nullable": true }, "@odata.nextLink": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/DDF.Core.Entities.Member?skip=1" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Office" }, "nullable": true }, "@odata.nextLink": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/DDF.Core.Entities.Office?skip=1" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.OpenHouse" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.OpenHouse" }, "nullable": true }, "@odata.nextLink": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/DDF.Core.Entities.OpenHouse?skip=1" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataListResponse`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Property" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Property" }, "nullable": true }, "@odata.nextLink": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/DDF.Core.Entities.Property?skip=1" } }, "additionalProperties": false }, "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]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Member" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.MemberIdentifier" }, "nullable": true } }, "additionalProperties": false }, "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]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.OfficeIdentifier" }, "nullable": true } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataReplicationListResponse`2[[DDF.Core.Entities.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Property" }, "value": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.PropertyIdentifier" }, "nullable": true } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Destination" }, "DestinationId": { "type": "integer", "description": "A unique identifier for this record.", "format": "int32" }, "DestinationName": { "type": "string", "description": "The name of the destination.", "nullable": true }, "DestinationUrl": { "type": "string", "description": "The URL to the destination referenced by this record.", "nullable": true }, "DestinationType": { "enum": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "type": "integer", "description": "The type of destination. i.e. Technology Provider, Partner, etc.", "format": "int32", "nullable": true }, "DestinationStatus": { "enum": [ 1, 2, 3 ], "type": "integer", "description": "The status of the destination. i.e. Active, Inactive, Suspended", "format": "int32", "nullable": true }, "MemberFirstName": { "type": "string", "description": "The first name of the member.", "nullable": true }, "MemberLastName": { "type": "string", "description": "The last name of the member.", "nullable": true }, "MemberKey": { "type": "string", "description": "The unique identifier (MemberKey) of the member who owns the destination.", "nullable": true }, "OriginalEntryTimestamp": { "type": "string", "description": "Date/time the destination record was originally input into the source system (in Zulu time (UTC)).", "format": "date-time", "nullable": true }, "ModificationTimestamp": { "type": "string", "description": "Date/time the destination record was last modified (in Zulu time (UTC)).", "format": "date-time", "nullable": true }, "FullNSP": { "type": "boolean", "description": "A flag indicating that if the destination is Full NSP." } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Member" }, "MemberKey": { "type": "string", "description": "A unique identifier for this record.", "nullable": true, "example": "MemberKey" }, "MemberMlsId": { "type": "string", "description": "The local, well-known identifier. This value may not be unique, specifically in the case of aggregation systems, this value should be the identifier from the original system.", "nullable": true, "example": "MemberMlsId" }, "OfficeKey": { "type": "string", "description": "The unique identifier of the member's office.", "nullable": true, "example": "OfficeKey" }, "OfficeNationalAssociationId": { "type": "string", "description": "The national association ID of the office. i.e. In Canada, this is the Organization ID of the Office.", "nullable": true, "example": "111111" }, "JobTitle": { "type": "string", "description": "The title or position of the member within their organization.", "nullable": true, "example": "JobTitle" }, "MemberAORKey": { "type": "string", "description": "A system unique identifier. This is the Board ID of the Member's Primary Board or Association of REALTORS.", "nullable": true, "example": "MemberAORKey" }, "MemberAddress1": { "type": "string", "description": "The street number, direction, name and suffix of the member.", "nullable": true, "example": "MemberAddress1" }, "MemberAddress2": { "type": "string", "description": "The unit/suite number of the member.", "nullable": true, "example": "MemberAddress2" }, "MemberFax": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberFax" }, "MemberFirstName": { "type": "string", "description": "The first name of the Member.", "nullable": true, "example": "MemberFirstName" }, "MemberLastName": { "type": "string", "description": "The last name of the Member.", "nullable": true, "example": "MemberLastName" }, "MemberMiddleName": { "type": "string", "description": "The middle name of the Member.", "nullable": true, "example": "MemberMiddleName" }, "MemberNamePrefix": { "type": "string", "description": "Prefix to the name (e.g. Dr. Mr. Ms. etc.)", "nullable": true, "example": "MemberNamePrefix" }, "MemberNameSuffix": { "type": "string", "description": "Suffix to the surname (e.g. Esq., Jr., III etc.)", "nullable": true, "example": "MemberNameSuffix" }, "MemberNationalAssociationId": { "type": "string", "description": "The national association ID of the member. i.e. In Canada this is the CREA ID of the member.", "nullable": true, "example": "MemberNationalAssociationId" }, "MemberNickname": { "type": "string", "description": "An alternate name used by the Member, usually as a substitute for the first name.", "nullable": true, "example": "MemberNickname" }, "MemberOfficePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberOfficePhone" }, "MemberOfficePhoneExt": { "type": "string", "description": "The extension of the given phone number (if applicable).", "nullable": true, "example": "MemberOfficePhoneExt" }, "MemberPostalCode": { "type": "string", "description": "The postal code of the member.", "nullable": true, "example": "MemberPostalCode" }, "MemberPager": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberPager" }, "MemberTollFreePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "MemberTollFreePhone" }, "ModificationTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OriginalEntryTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was originally input into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "MemberCity": { "type": "string", "description": "The city of the member.", "nullable": true, "example": "MemberCity" }, "MemberAOR": { "type": "String", "description": "The Member's Primary Board Name or Association's Name of REALTORS.", "format": "Enum: AOR", "nullable": true, "example": "Affiliate" }, "MemberCountry": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" }, "MemberDesignation": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Designations and certifications acknowledging experience and expertise in various real estate sectors are awarded by CREA and each affiliated group upon completion of required courses", "format": "Enum: MemberDesignation", "nullable": true, "example": "AccreditedBuyerRepresentative" }, "MemberLanguages": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The languages the member speaks.", "format": "Enum: MemberLanguages", "nullable": true, "example": "Chaldean" }, "MemberSocialMedia": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.SocialMedia" }, "description": "A collection of the types of social media fields available for this member. The collection includes the type of system and other details pertinent about social media.", "nullable": true }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Member.", "nullable": true }, "MemberStateOrProvince": { "type": "String", "description": "The state or province in which the member is addressed.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "MemberStatus": { "type": "String", "description": "The current status of the member.", "format": "Enum: MemberStatus", "nullable": true, "example": "Active" }, "MemberType": { "type": "String", "description": "The type of member. i.e. Agent, Broker, Office Manager, Appraiser, Assistants, MLO, Realtor, Association Staff, MLS Staff, etc.", "format": "Enum: MemberType", "nullable": true, "example": "GlobalAffiliate" }, "MemberEmailYN": { "type": "boolean", "description": "This flag signifies the availability of a REALTOR®’s email address. It is intended for clients who use the Lead API endpoint to communicate with Realtors. If the flag is false, these clients should turn off the email REALTOR® function for the respective REALTOR®. Clients not using Lead API endpoint can disregard this field.", "nullable": true } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office" }, "OfficeKey": { "type": "string", "description": "A unique identifier for this record from the immediate source. This is the string only key and used as an alternative to the OfficeKeyNumeric fields.", "nullable": true, "example": "OfficeKey" }, "OfficeMlsId": { "type": "string", "description": "The local, well-known identifier. This value may not be unique, specifically in the case of aggregation systems, this value should be the identifier from the original system.", "nullable": true, "example": "OfficeMlsId" }, "OfficeAORKey": { "type": "string", "description": "A system unique identifier. This is the Board ID of the Office's Primary Board or Association of REALTORS.", "nullable": true, "example": "OfficeAORKey" }, "OfficeNationalAssociationId": { "type": "string", "description": "The national association ID of the office. i.e. In Canada, this is the CREA Organization ID of the Office.", "nullable": true, "example": "OfficeNationalAssociationId" }, "FranchiseNationalAssociationId": { "type": "string", "description": "The national association ID of the Franchisor. In Canada this would be the CREAID", "nullable": true, "example": "0" }, "OfficeBrokerNationalAssociationId": { "type": "string", "description": "The national association Id of the Brokerage Owner. In Canada this would be the CREAID", "nullable": true, "example": "OfficeBrokerNationalAssociationId" }, "OfficeAddress1": { "type": "string", "description": "The street number, direction, name and suffix of the office.", "nullable": true, "example": "OfficeAddress1" }, "OfficeAddress2": { "type": "string", "description": "The unit/suite number of the office.", "nullable": true, "example": "OfficeAddress2" }, "OfficeCity": { "type": "string", "description": "The city of the office.", "nullable": true, "example": "OfficeCity" }, "OfficeFax": { "type": "string", "description": "North American 10 digit fax numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "OfficeFax" }, "OfficeName": { "type": "string", "description": "The legal name of the brokerage.", "nullable": true, "example": "OfficeName" }, "OfficePhone": { "type": "string", "description": "North American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.", "nullable": true, "example": "OfficePhone" }, "OfficePhoneExt": { "type": "string", "description": "The extension of the given phone number (if applicable).", "nullable": true, "example": "OfficePhoneExt" }, "OfficePostalCode": { "type": "string", "description": "The postal code of the office.", "nullable": true, "example": "OfficePostalCode" }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Office.", "nullable": true }, "OfficeSocialMedia": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.SocialMedia" }, "description": "A collection of the types of social media fields available for this office. The collection includes the type of system and other details pertinent about social media", "nullable": true }, "ModificationTimestamp": { "type": "String", "description": "Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OriginalEntryTimestamp": { "type": "String", "description": "Date/time the office record was originally input into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T12:00:00.000Z\"" }, "OfficeType": { "type": "String", "description": "The type of business conducted by the office. i.e. Real Estate, Appraiser, etc.", "format": "Enum: OfficeType", "nullable": true, "example": "Real Estate" }, "OfficeStateOrProvince": { "type": "String", "description": "The state or province in which the office is located.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "OfficeAOR": { "type": "String", "description": "The Office's Board or Association of REALTORS.", "format": "Enum: AOR", "nullable": true, "example": "Affiliate" }, "OfficeStatus": { "type": "String", "description": "Is the office active, inactive or under disciplinary action.", "format": "Enum: OfficeStatus", "nullable": true, "example": "Active" }, "OfficeCountry": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.OpenHouse" }, "OpenHouseKey": { "type": "string", "description": "A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "ListingKey": { "type": "string", "description": "A unique identifier for the listing record related to this Open House.", "nullable": true, "example": "12345" }, "ListingId": { "type": "string", "description": "The well known identifier for the listing related to this Open House.", "nullable": true, "example": "1" }, "OpenHouseDate": { "type": "string", "description": "The date on which the open house will occur.", "format": "date-time", "nullable": true, "example": "2021-01-01" }, "OpenHouseStartTime": { "type": "string", "description": "The time the open house begins (in local time).", "nullable": true, "example": "12:00:00.00" }, "OpenHouseEndTime": { "type": "string", "description": "The time the open house ends (in local time).", "nullable": true, "example": "12:00:00.00" }, "OpenHouseRemarks": { "type": "string", "description": "Comments, instructions or information about the open house.", "nullable": true, "example": "OpenHouseRemarks" }, "OpenHouseType": { "type": "String", "description": "The type of open house. i.e. Public, Broker, Office, Association, Private (invitation or targeted publication).", "format": "Enum: OpenHouseType", "nullable": true, "example": "Public" }, "OpenHouseStatus": { "type": "String", "description": "Status of the open house, i.e. Active, Cancelled, Ended.", "format": "Enum: OpenHouseStatus", "nullable": true, "example": "Active" }, "LivestreamOpenHouseURL": { "type": "String", "description": "A link to an open house livestream event", "nullable": true, "example": "\"https://www.youtube.com/watch?v=i-09UtAH10A\"" } }, "additionalProperties": false }, "DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "@odata.context": { "type": "string", "nullable": true, "example": "https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Property" }, "ListingKey": { "type": "string", "description": "A unique identifier for this record from the immediate source.", "nullable": true, "example": "12345" }, "PropertySubType": { "type": "String", "description": "A list of types of residential and residential lease properties, i.e. Condo, etc. Or a list of Sub Types for Mobile, such as Expando, Manufactured, Modular, etc.", "format": "Enum: PropertySubType", "nullable": true, "example": "Business" }, "DocumentsAvailable": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the Documents available for the property. Knowing what documents are available for the property is valuable information.", "format": "Enum: DocumentsAvailable", "nullable": true, "example": [ "Floor Plan, Site Plan" ] }, "LeaseAmount": { "type": "number", "description": "The amount of any lease the business pays for it's current location.", "format": "double", "nullable": true, "example": 1000 }, "LeaseAmountFrequency": { "type": "String", "description": "The frequency of the LeaseAmount is paid. Monthly, weekly, annual, etc.", "format": "Enum: FeeFrequency", "nullable": true, "example": "Monthly" }, "BusinessType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The type of business being sold. Retail, Recreation, Restaurant, Residential, etc.", "format": "Enum: BusinessType", "nullable": true, "example": [ "Agriculture, Forestry" ] }, "LeasePerUnit": { "type": "String", "description": "A pick list of the unit of measurement used for the lease per unit.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "Acres" }, "PricePerUnit": { "type": "String", "description": "A pick list of the unit of measurement used for the price per unit.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "square feet" }, "WaterBodyName": { "type": "string", "description": "The name, if known, of the body of water on which the property is located. (E.g., lake name, river name, ocean name, sea name, canal name).", "nullable": true, "example": "WaterBodyName" }, "View": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A view as seen from the listed property.", "format": "Enum: View", "nullable": true, "example": [ "Ocean view" ] }, "NumberOfBuildings": { "type": "integer", "description": "Total number of separate buildings included in the income property.", "format": "int32", "nullable": true, "example": 1 }, "NumberOfUnitsTotal": { "type": "integer", "description": "Total number of units included in the income property, occupied or unoccupied.", "format": "int32", "nullable": true, "example": 45 }, "LotFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the lot included in the sale/lease.", "format": "Enum: LotFeatures", "nullable": true, "example": [ "Acreage" ] }, "LotSizeArea": { "type": "number", "description": "The total area of the lot. See Lot Size Units for the units of measurement (Square Feet, Square Meters, Acres, etc.).", "format": "double", "nullable": true, "example": 1 }, "LotSizeDimensions": { "type": "string", "description": "The dimensions of the lot minimally represented as length and width (i.e. 250 x 180) or a measurement of all sides of the polygon representing the property lines of the property. i.e. 30 x 50 x 120 x 60 x 22.", "nullable": true, "example": "60 X 262" }, "LotSizeUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.", "format": "Enum: LotSizeUnits", "nullable": true, "example": "Acres" }, "PoolFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the pool included in the sale/lease.", "format": "Enum: PoolFeatures", "nullable": true, "example": [ "On Ground Pool" ] }, "RoadSurfaceType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Pick list of types of surface of the Road to access the property. The surface of the road(s) for access to the property is an important factor in determining value of the property and it’s appropriateness for intended use.", "format": "Enum: RoadSurfaceType", "nullable": true, "example": [ "Paved road" ] }, "CurrentUse": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of current use of the property. The current use of the property is an important factor in understanding the overall condition of the land and determining it's appropriateness for intended use.", "format": "Enum: CurrentUse", "nullable": true, "example": [ "Recreational" ] }, "PossibleUse": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of possible or best uses of the property. Probable use gives a good indication of what the best use or potential use of the property could be. i.e. Primary, Vacation, Investment, Rental, Retirement.", "format": "Enum: PossibleUse", "nullable": true, "example": [ "Agriculture - active" ] }, "AnchorsCoTenants": { "type": "string", "description": "The main or most notable tenants as well as other tenants of the shopping center or mall in which the commercial property is located.", "nullable": true, "example": "AnchorsCoTenant" }, "WaterfrontFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the features or description of the waterfront on which the property is located.", "format": "Enum: WaterfrontFeatures", "nullable": true }, "CommunityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features related to, or available within, the community.", "format": "Enum: CommunityFeatures", "nullable": true }, "FrontageLengthNumeric": { "type": "number", "description": "A numeric representation of the length of the frontage.", "format": "double", "nullable": true, "example": 400 }, "FrontageLengthNumericUnits": { "type": "String", "description": "The unit of measurement used for the value in the FrontageLengthNumeric fields. e.g. feet, meters, etc.", "format": "Enum: LinearUnits", "nullable": true }, "Fencing": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of types of fencing at the property.", "format": "Enum: Fencing", "nullable": true }, "Appliances": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the appliances that will be included in the sale/lease of the property.", "format": "Enum: Appliances", "nullable": true, "example": [ "Dryer - Electric" ] }, "OtherEquipment": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of other equipment that will be included in the sale of the property. ", "format": "Enum: OtherEquipment", "nullable": true, "example": [ "Unknown" ] }, "SecurityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the security features included in the sale/lease.", "format": "Enum: SecurityFeatures", "nullable": true }, "TotalActualRent": { "type": "number", "description": "Total actual rent currently being collected from tenants of the income property.", "format": "double", "nullable": true, "example": 300 }, "ExistingLeaseType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Information about the status of the existing lease on the property. i.e. Net, Gross, Percentage,, etc.", "format": "Enum: ExistingLeaseType", "nullable": true, "example": [ "Percentage" ] }, "AssociationFee": { "type": "number", "description": "A fee paid by the homeowner to the Home Owners Association which is used for the upkeep of the common area, neighborhood or other association related benefits.", "format": "double", "nullable": true, "example": 10 }, "AssociationFeeFrequency": { "type": "String", "description": "The frequency the Association fee is paid. For example, Weekly, Monthly, Annually, Bi-Monthly, One Time, etc.", "format": "Enum: FeeFrequency", "nullable": true, "example": "Monthly" }, "AssociationName": { "type": "string", "description": "The name of the Home Owners Association.", "nullable": true, "example": "AssociationName" }, "AssociationFeeIncludes": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Services included with the association fee. For example Landscaping, Trash, Water, etc.", "format": "Enum: AssociationFeeIncludes", "nullable": true, "example": [ "Management" ] }, "OriginalEntryTimestamp": { "type": "String", "description": "The date and time the record was inserted into the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "ModificationTimestamp": { "type": "String", "description": "The date and time the record was last updated in the source system (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "AvailabilityDate": { "type": "string", "description": "The date the property will be available for possession/occupation.", "format": "date-time", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "ListingId": { "type": "string", "description": "The well known identifier for the listing. The value may be identical to that of the Listing Key, but the Listing ID is intended to be the value used by a human to retrieve the information about a specific listing. In a multiple originating system or a merged system, this value may not be unique and may require the use of the provider system to create a synthetic unique value.", "nullable": true, "example": "00001" }, "ListAgentNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the primary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId2": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "CoListAgentNationalAssociationId3": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "00001" }, "InternetEntireListingDisplayYN": { "type": "boolean", "description": "A yes/no field that states the seller has allowed the listing to be displayed on Internet sites.", "nullable": true, "example": true }, "StandardStatus": { "type": "String", "description": "The status of the listing. This is a Single Select field.", "format": "Enum: StandardStatus", "nullable": true }, "StatusChangeTimestamp": { "type": "String", "description": "The transactional timestamp automatically recorded by the MLS system representing the date/time the listing's status was last changed (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "PublicRemarks": { "type": "string", "description": "Text remarks that may be displayed to the public.", "nullable": true, "example": "PRIME COMMERCIAL LOCATION." }, "ListPrice": { "type": "number", "description": "The current price of the property as determined by the seller and the seller's broker. For auctions this is the minimum or reserve price.", "format": "double", "nullable": true, "example": 800000 }, "Inclusions": { "type": "string", "description": "Portable elements of the property that will be included in the sale.", "nullable": true, "example": "Inclusions" }, "ListOfficeKey": { "type": "string", "description": "A system unique identifier. This is the OfficeKey that the property belongs to.", "nullable": true, "example": "ListOfficeKey" }, "CoListOfficeKey": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeKey" }, "CoListOfficeKey2": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true }, "CoListOfficeKey3": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeKey3" }, "ListOfficeNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the primary OfficeKey that the property belongs to.", "nullable": true, "example": "ListOfficeNationalAssociationId" }, "CoListOfficeNationalAssociationId": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId" }, "CoListOfficeNationalAssociationId2": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId2" }, "CoListOfficeNationalAssociationId3": { "type": "string", "description": "A system unique identifier. This is the secondary OfficeKey that the property belongs to.", "nullable": true, "example": "CoListOfficeNationalAssociationId3" }, "CoListAgentKey": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey" }, "CoListAgentKey2": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey2" }, "CoListAgentKey3": { "type": "string", "description": "A system unique identifier. This is the secondary MemberKey that the property belongs to.", "nullable": true, "example": "CoListAgentKey3" }, "ListAgentKey": { "type": "string", "description": "A system unique identifier. This is the MemberKey that the property belongs to.", "nullable": true, "example": "ListAgentKey" }, "InternetAddressDisplayYN": { "type": "boolean", "description": "A yes/no field that states the seller has allowed the listing address to be displayed on Internet sites.", "nullable": true, "example": true }, "ListingURL": { "type": "string", "description": "Provides a link to the specific listing on realtor.ca. The UTM codes should be removed when performing any ODATA operation with this field.", "nullable": true }, "OriginatingSystemName": { "type": "string", "description": "The name of the Originating record provider. Most commonly the name of the MLS. The place where the listing is originally input by the member. The legal name of the company.", "nullable": true }, "PhotosCount": { "type": "integer", "description": "The total number of pictures or photos included with the listing.", "format": "int32", "nullable": true }, "PhotosChangeTimestamp": { "type": "String", "description": "System generated timestamp of when the last update or change to the photos for this listing was made (in Zulu time (UTC)).", "format": "Enum: DateTime", "nullable": true, "example": "\"2021-01-01T00:00:00.000Z\"" }, "CommonInterest": { "type": "String", "description": "Common Interest is a type of ownership in a property that is composed of an individual lot or unit and a share of the ownership or use of common areas.", "format": "Enum: CommonInterest", "nullable": true, "example": "Business" }, "ListAOR": { "type": "String", "description": "The responsible board or association of REALTORS® for this listing.", "format": "Enum: AOR", "nullable": true, "example": "Fredericton" }, "ListAORKey": { "type": "string", "description": "A system unique identifier. Specifically, in aggregation systems, the ListAOR Key is the unique identifier of the primary board or association of REALTORS providing the property data, from the system where the record was retrieved.", "nullable": true }, "UnparsedAddress": { "type": "string", "description": "The UnparsedAddress is a text representation of the address with the full civic location as a single entity. It may optionally include any of City, StateOrProvince, PostalCode and Country.", "nullable": true, "example": "UnparsedAddress" }, "PostalCode": { "type": "string", "description": "The postal code portion of a street or mailing address.", "nullable": true, "example": "PostalCode" }, "SubdivisionName": { "type": "string", "description": "A neighborhood, community, complex or builder tract.", "nullable": true, "example": "SubdivisionName" }, "StateOrProvince": { "type": "String", "description": "Text field containing the accepted postal abbreviation for the state or province.", "format": "Enum: StateOrProvince", "nullable": true, "example": "Ontario" }, "StreetDirPrefix": { "type": "String", "description": "The direction indicator that precedes the listed property's street name.", "format": "Enum: StreetDir", "nullable": true, "example": "North" }, "StreetDirSuffix": { "type": "String", "description": "The direction indicator that follows a listed property's street address.", "format": "Enum: StreetDir", "nullable": true, "example": "South" }, "StreetName": { "type": "string", "description": "The street name portion of a listed property's street address.", "nullable": true, "example": "StreetName" }, "StreetNumber": { "type": "string", "description": "The street number portion of a listed property's street address. In some areas the street number may contain non-numeric characters. This field can also contain extensions and modifiers to the street number, such as \"1/2\" or \"-B\". This street number field should not include Prefixes, Direction or Suffixes.", "nullable": true, "example": "StreetNumber" }, "StreetSuffix": { "type": "String", "description": "The suffix portion of a listed property's street address.", "format": "Enum: StreetSuffix", "nullable": true }, "UnitNumber": { "type": "string", "description": "Text field containing the number or portion of a larger building or complex. Unit Number should appear following the street suffix or, if it exists, the street suffix direction, in the street address. Examples are: \"APT G\", \"55\", etc.", "nullable": true, "example": "123" }, "Country": { "type": "String", "description": "The country in a postal address.", "format": "Enum: Country", "nullable": true, "example": "Canada" }, "City": { "type": "string", "description": "The city in listing address.", "nullable": true, "example": "City" }, "Directions": { "type": "string", "description": "Driving directions to the property.", "nullable": true, "example": "Directions" }, "Latitude": { "type": "number", "description": "The geographic latitude of some reference point on the property, specified in degrees and decimal parts. Positive numbers must not include the plus symbol.", "format": "double", "nullable": true }, "Longitude": { "type": "number", "description": "The geographic longitude of some reference point on the property, specified in degrees and decimal parts. Positive numbers must not include the plus symbol.", "format": "double", "nullable": true }, "CityRegion": { "type": "string", "description": "A sub-section or area of a defined city. Examples would be Yorkville in Toronto, ON, Fairview in Vancouver, BC", "nullable": true, "example": "Parkdale" }, "MapCoordinateVerifiedYN": { "type": "String", "description": "This flag is deprecated and should not be used by clients. Instead, use the GeoCodeManualYN flag to determine whether geocoordinates were manually provided by Boards or Members.", "format": "Enum: Boolean", "nullable": true, "readOnly": true, "example": true }, "GeocodeManualYN": { "type": "boolean", "description": "This flag indicates whether the geocoordinates in the response were manually provided, such as by Boards or Members. If the flag is set to false, users can decide whether to geocode those listings themselves or review them.", "nullable": true, "example": true }, "ParkingTotal": { "type": "integer", "description": "The total number of parking spaces included in the sale.", "format": "int32", "nullable": true, "example": 1 }, "YearBuilt": { "type": "integer", "description": "The year that an occupancy permit is first granted for the house or other local measure of initial habitability of the build.", "format": "int32", "nullable": true, "example": 2003 }, "BathroomsPartial": { "type": "integer", "description": "The number of partial bathrooms in the property being sold/leased.", "format": "int32", "nullable": true, "example": 1 }, "BathroomsTotalInteger": { "type": "integer", "description": "The simple sum of the number of bathrooms.", "format": "int32", "nullable": true, "example": 2 }, "BedroomsTotal": { "type": "integer", "description": "The total number of bedrooms in the dwelling.", "format": "int32", "nullable": true, "example": 2 }, "BuildingAreaTotal": { "type": "number", "description": "Total area of the structure. Includes both finished and unfinished areas.", "format": "double", "nullable": true, "example": 2000 }, "BuildingAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "square feet" }, "BuildingFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "Features or amenities of the building or business park.", "format": "Enum: BuildingFeatures", "nullable": true, "example": [ "Laundry Facility" ] }, "AboveGradeFinishedArea": { "type": "number", "description": "Finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "AboveGradeFinishedAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Square Feet" }, "AboveGradeFinishedAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "AboveGradeFinishedAreaMinimum": { "type": "number", "description": "The minimum finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "AboveGradeFinishedAreaMaximum": { "type": "number", "description": "The maximum finished area within the structure that is at or above the surface of the ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedArea": { "type": "number", "description": "The finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Square Feet" }, "BelowGradeFinishedAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "BelowGradeFinishedAreaMinimum": { "type": "number", "description": "The minimum finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "BelowGradeFinishedAreaMaximum": { "type": "number", "description": "The maximum finished area within the structure that is below ground.", "format": "double", "nullable": true, "example": 100 }, "LivingArea": { "type": "number", "description": "The total livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "LivingAreaUnits": { "type": "String", "description": "A pick list of the unit of measurement for the area (e.g., Square Feet, Square Meters).", "format": "Enum: AreaUnits", "nullable": true, "example": "Acres" }, "LivingAreaSource": { "type": "String", "description": "The source of the measurements. This is a pick list of options showing the source of the measurement (e.g., Agent, Assessor, Estimate).", "format": "Enum: SquareFootageSource", "nullable": true, "example": "Appraiser" }, "LivingAreaMinimum": { "type": "number", "description": "The minimum livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "LivingAreaMaximum": { "type": "number", "description": "The maximum livable area within the structure.", "format": "double", "nullable": true, "example": 100 }, "FireplacesTotal": { "type": "integer", "description": "The total number of fireplaces included in the property.", "format": "int32", "nullable": true, "example": 1 }, "FireplaceYN": { "type": "boolean", "description": "Does the property include a fireplace.", "nullable": true, "example": true }, "FireplaceFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the fireplace(s) included in the sale/lease.", "format": "Enum: FireplaceFeatures", "nullable": true, "example": [ "Conventional" ] }, "ArchitecturalStyle": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the style of the structure. For example, Victorian, Ranch, Craftsman, etc.", "format": "Enum: ArchitecturalStyle", "nullable": true, "example": [ "Hillside Bungalow" ] }, "Heating": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the heating features of the property.", "format": "Enum: Heating", "nullable": true, "example": [ "Heat Pump" ] }, "FoundationDetails": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of foundation on which the property sits.", "format": "Enum: FoundationDetails", "nullable": true, "example": [ "Wood" ] }, "Basement": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of information and features about the basement. i.e. None/Slab, Finished, Partially Finished, Crawl Space, Dirt, Outside Entrance, Radon Mitigation", "format": "Enum: Basement", "nullable": true, "example": [ "Full" ] }, "ExteriorFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the exterior of the property included in the sale/lease.", "format": "Enum: ExteriorFeatures", "nullable": true, "example": [ "Steel" ] }, "Flooring": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the type(s) of flooring found within the property.", "format": "Enum: Flooring", "nullable": true, "example": [ "Concrete" ] }, "ParkingFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of features or description of the parking included in the sale/lease.", "format": "Enum: ParkingFeatures", "nullable": true, "example": [ "Attached Garage" ] }, "Cooling": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the cooling or air conditioning features of the property.", "format": "Enum: Cooling", "nullable": true, "example": [ "Central air conditioning" ] }, "PropertyCondition": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the condition of the property and any structures included in the sale.", "format": "Enum: PropertyCondition", "nullable": true, "example": [ "New" ] }, "Roof": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the type or style of roof. For example Spanish Tile, Composite, Shake, etc.", "format": "Enum: Roof", "nullable": true, "example": [ "Conventional" ] }, "ConstructionMaterials": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the materials that were used in the construction of the property.", "format": "Enum: ConstructionMaterials", "nullable": true, "example": [ "Insulbrick" ] }, "Rooms": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.PropertyRoom" }, "description": "A collection of types of rooms and details/features about the given room.", "nullable": true }, "Stories": { "type": "number", "description": "The number of floors in the property being sold.", "format": "double", "nullable": true, "example": 3 }, "PropertyAttachedYN": { "type": "boolean", "description": "A flag indicating that the primary structure is attached to another structure that is not included in the sale. i.e. one unit of a duplex. As with all flags, the field may be null.", "nullable": true }, "AccessibilityFeatures": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list or description of the accessibility features included in the sale/lease.", "format": "Enum: AccessibilityFeatures", "nullable": true }, "BedroomsAboveGrade": { "type": "integer", "description": "The total number of bedrooms within the structure that is above ground.", "format": "int32", "nullable": true, "example": 3 }, "BedroomsBelowGrade": { "type": "integer", "description": "The total number of bedrooms within the structure that is below ground.", "format": "int32", "nullable": true, "example": 2 }, "Zoning": { "type": "string", "description": "A division of the city into areas of different permissible land uses. This Zone field should be used for the short code that is commonly used. For full textual descriptions please use the ZoningDescription field.", "nullable": true, "example": "Zoning" }, "ZoningDescription": { "type": "string", "description": "A list of descriptions of the zoning of the property. The zoning codes are often non-descriptive and variant. Zoning Description is a more descriptive form of the zoning for the property, i.e. Agricultural, Residential, Rezone Possible, etc. Specific zone codes must be added to the Zoning field.", "nullable": true, "example": "ZoningDescription" }, "TaxAnnualAmount": { "type": "number", "description": "The annual property tax amount as of the last assessment made by the taxing authority.", "format": "double", "nullable": true, "example": 3000 }, "TaxBlock": { "type": "string", "description": "A type of legal description for land in developed areas where streets or other rights-of-ways delineate large parcels of land referred to as divided into lots on which homes or other types of developments are built.", "nullable": true, "example": "TaxBlock" }, "TaxLot": { "type": "string", "description": "A type of legal description for land in developed areas where streets or other rights-of-ways delineate large parcels of land referred to as divided into lots on which homes or other types of developments are built.", "nullable": true, "example": "TaxLot" }, "TaxYear": { "type": "integer", "description": "The year in with the last assessment of the property value/tax was made.", "format": "int32", "nullable": true, "example": 2021 }, "StructureType": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The type of structure that the property completely or partially encompasses. For example, House or Cabin are the overall structure and typically sold or leased as a whole.", "format": "Enum: StructureType", "nullable": true, "example": [ "House" ] }, "ParcelNumber": { "type": "string", "description": "A number used to uniquely identify a parcel or lot. This number is typically issued by the county or county assessor. The AP number format varies from county to county. It is recommended that all Parcel Numbers be transmitted without dashes or hyphens.", "nullable": true, "example": "029-005-370" }, "Utilities": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the utilities for the property being sold/leased.", "format": "Enum: Utilities", "nullable": true, "example": [ "Sewer" ] }, "IrrigationSource": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "The source which the property receives its water for irrigation.", "format": "Enum: IrrigationSource", "nullable": true, "example": [ "Flood" ] }, "WaterSource": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of the source(s) of water for the property.", "format": "Enum: WaterSource", "nullable": true, "example": [ "Municipal water" ] }, "Sewer": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list describing the sewer or septic features of the property.", "format": "Enum: Sewer", "nullable": true, "example": [ "No sewage system" ] }, "Electric": { "type": "Array of Strings", "items": { "type": "integer", "format": "int32" }, "description": "A list of electric-service related features of the property (e.g. 110 Volt, 3 Phase, 220 Volt, RV Hookup).", "format": "Enum: Electric", "nullable": true, "example": [ "220v Entry", "600 Amp Service" ] }, "Media": { "type": "array", "items": { "$ref": "#/components/schemas/DDF.Core.Entities.Media" }, "description": "A collection of the types of media fields available for this Property.", "nullable": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.Http.ConnectionInfo": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.HostString": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.HttpContext": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.HttpRequest": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.HttpResponse": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.IResponseCookies": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.ISession": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.PathString": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.QueryString": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.Http.WebSocketManager": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ApplyQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "ResultClrType": { "$ref": "#/components/schemas/System.Type" }, "ApplyClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.Aggregation.ApplyClause" }, "RawValue": { "type": "string", "nullable": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ComputeQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "ResultClrType": { "$ref": "#/components/schemas/System.Type" }, "ComputeClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.ComputeClause" }, "RawValue": { "type": "string", "nullable": true }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IComputeQueryValidator" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.CountQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValue": { "type": "string", "nullable": true }, "Value": { "type": "boolean", "readOnly": true }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.ICountQueryValidator" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.DefaultQueryConfigurations": { "type": "object", "properties": { "EnableExpand": { "type": "boolean" }, "EnableSelect": { "type": "boolean" }, "EnableCount": { "type": "boolean" }, "EnableOrderBy": { "type": "boolean" }, "EnableFilter": { "type": "boolean" }, "MaxTop": { "type": "integer", "format": "int32", "nullable": true }, "EnableSkipToken": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OfficeIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "IsWellFormed": { "type": "boolean" }, "EntityType": { "$ref": "#/components/schemas/System.Type" }, "IsAny": { "type": "boolean" }, "IsIfNoneMatch": { "type": "boolean" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.FilterQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IFilterQueryValidator" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "FilterClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.FilterClause" }, "RawValue": { "type": "string", "nullable": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryContext": { "type": "object", "properties": { "DefaultQueryConfigurations": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.DefaultQueryConfigurations" }, "Model": { "$ref": "#/components/schemas/Microsoft.OData.Edm.IEdmModel" }, "ElementType": { "$ref": "#/components/schemas/Microsoft.OData.Edm.IEdmType" }, "NavigationSource": { "$ref": "#/components/schemas/Microsoft.OData.Edm.IEdmNavigationSource" }, "ElementClrType": { "$ref": "#/components/schemas/System.Type" }, "Path": { "type": "array", "items": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.ODataPathSegment" }, "nullable": true }, "RequestContainer": { "$ref": "#/components/schemas/System.IServiceProvider" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Destination, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Member, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.MemberIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Office, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.OfficeIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OfficeIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OfficeIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.OpenHouse, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.Property, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataQueryOptions`1[[DDF.Core.Entities.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": { "type": "object", "properties": { "Request": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpRequest" }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValues": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions" }, "SelectExpand": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption" }, "Apply": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ApplyQueryOption" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Filter": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.FilterQueryOption" }, "Search": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SearchQueryOption" }, "OrderBy": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByQueryOption" }, "Skip": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipQueryOption" }, "SkipToken": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption" }, "Top": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.TopQueryOption" }, "Count": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.CountQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator" }, "IfMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, "IfNoneMatch": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ETag`1[[DDF.Core.Entities.PropertyIdentifier, DDF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.ODataRawQueryOptions": { "type": "object", "properties": { "Filter": { "type": "string", "nullable": true, "readOnly": true }, "Apply": { "type": "string", "nullable": true, "readOnly": true }, "Compute": { "type": "string", "nullable": true, "readOnly": true }, "Search": { "type": "string", "nullable": true, "readOnly": true }, "OrderBy": { "type": "string", "nullable": true, "readOnly": true }, "Top": { "type": "string", "nullable": true, "readOnly": true }, "Skip": { "type": "string", "nullable": true, "readOnly": true }, "Select": { "type": "string", "nullable": true, "readOnly": true }, "Expand": { "type": "string", "nullable": true, "readOnly": true }, "Count": { "type": "string", "nullable": true, "readOnly": true }, "Format": { "type": "string", "nullable": true, "readOnly": true }, "SkipToken": { "type": "string", "nullable": true, "readOnly": true }, "DeltaToken": { "type": "string", "nullable": true, "readOnly": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.OrderByNode": { "type": "object", "properties": { "Direction": { "enum": [ 0, 1 ], "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.OrderByQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "OrderByNodes": { "type": "array", "items": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.OrderByNode" }, "nullable": true, "readOnly": true }, "RawValue": { "type": "string", "nullable": true }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.IOrderByQueryValidator" }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "OrderByClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.OrderByClause" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.SearchQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "ResultClrType": { "$ref": "#/components/schemas/System.Type" }, "SearchClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.SearchClause" }, "RawValue": { "type": "string", "nullable": true } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.SelectExpandQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawSelect": { "type": "string", "nullable": true, "readOnly": true }, "RawExpand": { "type": "string", "nullable": true, "readOnly": true }, "Compute": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ComputeQueryOption" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.ISelectExpandQueryValidator" }, "SelectExpandClause": { "$ref": "#/components/schemas/Microsoft.OData.UriParser.SelectExpandClause" }, "LevelsMaxLiteralExpansionDepth": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.SkipQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValue": { "type": "string", "nullable": true }, "Value": { "type": "integer", "format": "int32", "readOnly": true }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.ISkipQueryValidator" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.SkipTokenHandler": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.SkipTokenQueryOption": { "type": "object", "properties": { "RawValue": { "type": "string", "nullable": true }, "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.ISkipTokenQueryValidator" }, "Handler": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.SkipTokenHandler" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.TopQueryOption": { "type": "object", "properties": { "Context": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.ODataQueryContext" }, "RawValue": { "type": "string", "nullable": true }, "Value": { "type": "integer", "format": "int32", "readOnly": true }, "Validator": { "$ref": "#/components/schemas/Microsoft.AspNetCore.OData.Query.Validator.ITopQueryValidator" } }, "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.IComputeQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.ICountQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.IFilterQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.IODataQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.IOrderByQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.ISelectExpandQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.ISkipQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.ISkipTokenQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.AspNetCore.OData.Query.Validator.ITopQueryValidator": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.EdmReferentialConstraintPropertyPair": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmEntityContainer": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmEntityContainerElement": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmEntityType": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmExpression": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmModel": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmNavigationProperty": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmNavigationPropertyBinding": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmNavigationSource": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmPathExpression": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmProperty": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmReferentialConstraint": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmSchemaElement": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmStructuralProperty": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmStructuredType": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmType": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.IEdmTypeReference": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.Vocabularies.IEdmDirectValueAnnotationsManager": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.Vocabularies.IEdmTerm": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable": { "type": "object", "additionalProperties": false }, "Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotation": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.Aggregation.ApplyClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.Aggregation.TransformationNode": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.ComputeClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.ComputeExpression": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.FilterClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.ODataPathSegment": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.OrderByClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.RangeVariable": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.SearchClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.SelectExpandClause": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.SelectItem": { "type": "object", "additionalProperties": false }, "Microsoft.OData.UriParser.SingleValueNode": { "type": "object", "additionalProperties": false }, "Microsoft.Win32.SafeHandles.SafeWaitHandle": { "type": "object", "properties": { "IsClosed": { "type": "boolean", "readOnly": true }, "IsInvalid": { "type": "boolean", "readOnly": true } }, "additionalProperties": false }, "System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.Extensions.Primitives.StringValues, Microsoft.Extensions.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]]": { "type": "object", "properties": { "Key": { "type": "string", "nullable": true }, "Value": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { "type": "object", "properties": { "Key": { "type": "string", "nullable": true }, "Value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "System.Collections.Generic.KeyValuePair`2[[System.Type, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { "type": "object", "properties": { "Key": { "$ref": "#/components/schemas/System.Type" }, "Value": { "nullable": true } }, "additionalProperties": false }, "System.IO.Pipelines.PipeWriter": { "type": "object", "properties": { "CanGetUnflushedBytes": { "type": "boolean", "readOnly": true }, "UnflushedBytes": { "type": "integer", "format": "int64", "readOnly": true } }, "additionalProperties": false }, "System.IServiceProvider": { "type": "object", "additionalProperties": false }, "System.IntPtr": { "type": "object", "additionalProperties": false }, "System.ModuleHandle": { "type": "object", "properties": { "MDStreamVersion": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "System.Net.IPAddress": { "type": "object", "properties": { "AddressFamily": { "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 65536, 65537, -1 ], "type": "integer", "format": "int32", "readOnly": true }, "ScopeId": { "type": "integer", "format": "int64" }, "IsIPv6Multicast": { "type": "boolean", "readOnly": true }, "IsIPv6LinkLocal": { "type": "boolean", "readOnly": true }, "IsIPv6SiteLocal": { "type": "boolean", "readOnly": true }, "IsIPv6Teredo": { "type": "boolean", "readOnly": true }, "IsIPv6UniqueLocal": { "type": "boolean", "readOnly": true }, "IsIPv4MappedToIPv6": { "type": "boolean", "readOnly": true }, "Address": { "type": "integer", "format": "int64", "deprecated": true } }, "additionalProperties": false }, "System.ReadOnlyMemory`1[[System.Byte, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { "type": "object", "properties": { "Length": { "type": "integer", "format": "int32", "readOnly": true }, "IsEmpty": { "type": "boolean", "readOnly": true }, "Span": { "$ref": "#/components/schemas/System.ReadOnlySpan`1[[System.Byte, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" } }, "additionalProperties": false }, "System.ReadOnlySpan`1[[System.Byte, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": { "type": "object", "properties": { "Length": { "type": "integer", "format": "int32", "readOnly": true }, "IsEmpty": { "type": "boolean", "readOnly": true } }, "additionalProperties": false }, "System.Reflection.Assembly": { "type": "object", "additionalProperties": false }, "System.Reflection.ConstructorInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.CustomAttributeData": { "type": "object", "additionalProperties": false }, "System.Reflection.CustomAttributeNamedArgument": { "type": "object", "additionalProperties": false }, "System.Reflection.CustomAttributeTypedArgument": { "type": "object", "additionalProperties": false }, "System.Reflection.EventInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.FieldInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.ICustomAttributeProvider": { "type": "object", "additionalProperties": false }, "System.Reflection.MemberInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.MethodBase": { "type": "object", "additionalProperties": false }, "System.Reflection.MethodInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.Module": { "type": "object", "additionalProperties": false }, "System.Reflection.ParameterInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.PropertyInfo": { "type": "object", "additionalProperties": false }, "System.Reflection.TypeInfo": { "type": "object", "additionalProperties": false }, "System.Runtime.InteropServices.StructLayoutAttribute": { "type": "object", "properties": { "TypeId": { "nullable": true, "readOnly": true }, "Value": { "enum": [ 0, 2, 3 ], "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "System.RuntimeFieldHandle": { "type": "object", "properties": { "Value": { "$ref": "#/components/schemas/System.IntPtr" } }, "additionalProperties": false }, "System.RuntimeMethodHandle": { "type": "object", "properties": { "Value": { "$ref": "#/components/schemas/System.IntPtr" } }, "additionalProperties": false }, "System.RuntimeTypeHandle": { "type": "object", "properties": { "Value": { "$ref": "#/components/schemas/System.IntPtr" } }, "additionalProperties": false }, "System.Security.Claims.Claim": { "type": "object", "additionalProperties": false }, "System.Security.Claims.ClaimsIdentity": { "type": "object", "additionalProperties": false }, "System.Security.Claims.ClaimsPrincipal": { "type": "object", "additionalProperties": false }, "System.Security.Cryptography.AsnEncodedData": { "type": "object", "properties": { "Oid": { "$ref": "#/components/schemas/System.Security.Cryptography.Oid" }, "RawData": { "type": "string", "format": "byte", "nullable": true } }, "additionalProperties": false }, "System.Security.Cryptography.AsymmetricAlgorithm": { "type": "object", "properties": { "KeySize": { "type": "integer", "format": "int32" }, "LegalKeySizes": { "type": "array", "items": { "$ref": "#/components/schemas/System.Security.Cryptography.KeySizes" }, "nullable": true, "readOnly": true }, "SignatureAlgorithm": { "type": "string", "nullable": true, "readOnly": true }, "KeyExchangeAlgorithm": { "type": "string", "nullable": true, "readOnly": true } }, "additionalProperties": false }, "System.Security.Cryptography.KeySizes": { "type": "object", "properties": { "MinSize": { "type": "integer", "format": "int32" }, "MaxSize": { "type": "integer", "format": "int32" }, "SkipSize": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "System.Security.Cryptography.Oid": { "type": "object", "properties": { "Value": { "type": "string", "nullable": true }, "FriendlyName": { "type": "string", "nullable": true } }, "additionalProperties": false }, "System.Security.Cryptography.X509Certificates.PublicKey": { "type": "object", "properties": { "EncodedKeyValue": { "$ref": "#/components/schemas/System.Security.Cryptography.AsnEncodedData" }, "EncodedParameters": { "$ref": "#/components/schemas/System.Security.Cryptography.AsnEncodedData" }, "Key": { "$ref": "#/components/schemas/System.Security.Cryptography.AsymmetricAlgorithm" }, "Oid": { "$ref": "#/components/schemas/System.Security.Cryptography.Oid" } }, "additionalProperties": false }, "System.Security.Cryptography.X509Certificates.X500DistinguishedName": { "type": "object", "properties": { "Oid": { "$ref": "#/components/schemas/System.Security.Cryptography.Oid" }, "RawData": { "type": "string", "format": "byte", "nullable": true }, "Name": { "type": "string", "nullable": true, "readOnly": true } }, "additionalProperties": false }, "System.Security.Cryptography.X509Certificates.X509Certificate2": { "type": "object", "properties": { "Handle": { "$ref": "#/components/schemas/System.IntPtr" }, "Issuer": { "type": "string", "nullable": true, "readOnly": true }, "Subject": { "type": "string", "nullable": true, "readOnly": true }, "SerialNumberBytes": { "$ref": "#/components/schemas/System.ReadOnlyMemory`1[[System.Byte, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" }, "Archived": { "type": "boolean" }, "Extensions": { "type": "array", "items": { "$ref": "#/components/schemas/System.Security.Cryptography.X509Certificates.X509Extension" }, "nullable": true, "readOnly": true }, "FriendlyName": { "type": "string", "nullable": true }, "HasPrivateKey": { "type": "boolean", "readOnly": true }, "PrivateKey": { "$ref": "#/components/schemas/System.Security.Cryptography.AsymmetricAlgorithm" }, "IssuerName": { "$ref": "#/components/schemas/System.Security.Cryptography.X509Certificates.X500DistinguishedName" }, "NotAfter": { "type": "string", "format": "date-time", "readOnly": true }, "NotBefore": { "type": "string", "format": "date-time", "readOnly": true }, "PublicKey": { "$ref": "#/components/schemas/System.Security.Cryptography.X509Certificates.PublicKey" }, "RawData": { "type": "string", "format": "byte", "nullable": true, "readOnly": true }, "RawDataMemory": { "$ref": "#/components/schemas/System.ReadOnlyMemory`1[[System.Byte, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" }, "SerialNumber": { "type": "string", "nullable": true, "readOnly": true }, "SignatureAlgorithm": { "$ref": "#/components/schemas/System.Security.Cryptography.Oid" }, "SubjectName": { "$ref": "#/components/schemas/System.Security.Cryptography.X509Certificates.X500DistinguishedName" }, "Thumbprint": { "type": "string", "nullable": true, "readOnly": true }, "Version": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "System.Security.Cryptography.X509Certificates.X509Extension": { "type": "object", "properties": { "Oid": { "$ref": "#/components/schemas/System.Security.Cryptography.Oid" }, "RawData": { "type": "string", "format": "byte", "nullable": true }, "Critical": { "type": "boolean" } }, "additionalProperties": false }, "System.Security.Principal.IIdentity": { "type": "object", "properties": { "Name": { "type": "string", "nullable": true, "readOnly": true }, "AuthenticationType": { "type": "string", "nullable": true, "readOnly": true }, "IsAuthenticated": { "type": "boolean", "readOnly": true } }, "additionalProperties": false }, "System.Threading.CancellationToken": { "type": "object", "properties": { "IsCancellationRequested": { "type": "boolean", "readOnly": true }, "CanBeCanceled": { "type": "boolean", "readOnly": true }, "WaitHandle": { "$ref": "#/components/schemas/System.Threading.WaitHandle" } }, "additionalProperties": false }, "System.Threading.WaitHandle": { "type": "object", "properties": { "Handle": { "$ref": "#/components/schemas/System.IntPtr" }, "SafeWaitHandle": { "$ref": "#/components/schemas/Microsoft.Win32.SafeHandles.SafeWaitHandle" } }, "additionalProperties": false }, "System.Type": { "type": "object", "additionalProperties": false } } }, "tags": [ { "name": "Member", "description": "Get Members", "x-displayName": "Member" }, { "name": "Office", "description": "Get Offices", "x-displayName": "Office" }, { "name": "Property", "description": "Get Properties", "x-displayName": "Property" }, { "name": "Destination", "description": "Get details about each destination linked to the Technology Provider", "x-displayName": "Destination" }, { "name": "Lead", "description": "Create Lead", "x-displayName": "Lead" }, { "name": "member_model", "description": "", "x-displayName": "Member Model" }, { "name": "property_model", "description": "", "x-displayName": "Property Model" }, { "name": "office_model", "description": "", "x-displayName": "Office Model" }, { "name": "openhouse_model", "description": "", "x-displayName": "Open House Model" }, { "name": "destination_model", "description": "", "x-displayName": "Destination Model" } ], "x-tagGroups": [ { "name": "API Endpoints", "tags": [ "Media", "Member", "Office", "OpenHouse", "Property", "Destination", "Lead" ] }, { "name": "Models", "tags": [ "media_model", "member_model", "office_model", "openhouse_model", "property_model", "destination_model" ] } ] }