REALTOR.ca Office API

Get Offices

Operations 4

GET /odata/v1/Office Get a list of offices
GET /odata/v1/Office/{OfficeKey} Gets a single office by OfficeKey
GET /odata/v1/Office/OfficeReplication() Get a list of offices for all destinations
GET /odata/v1/Office/OfficeReplication(DestinationId={DestinationId}) Get a list of offices for a single destination #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

realtor-ca-office-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Realtor Ca Office API
  version: '1.0'
  contact:
    name: Realtor Support
    email: support@realtor.ca
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  description: 'Operations tagged Office across 2 of this provider''s published API definitions: realtor-ca-ddf-web-api-docs-openapi.json, realtor-ca-ddf-web-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://localhost:7051
tags:
- name: Office
  description: Get Offices
  x-displayName: Office
paths:
  /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'
    servers:
    - url: https://localhost:7051
  /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.

        The path-style is more intuitive and commonly used in RESTful APIs.

        The 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).


        <b>Path-style access: </b>```/odata/v1/Office/{OfficeKey}```


        <b>Example: </b>```/odata/v1/Office/49```


        <b> Function-style access: </b>```/odata/v1/Office(''{OfficeKey}'')```


        <b>Example: </b>```/odata/v1/Office(''49'')```'
      parameters:
      - name: OfficeKey
        in: path
        description: A unique identifier for this record from the immediate source
        required: true
        schema:
          type: string
      - name: $select
        in: query
        description: Selects which properties to include in the response.
        schema:
          type: string
      responses:
        '200':
          description: OK (DDF.Core.Entities.Office object)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDF.Infrastructure.Swagger.ExampleModels.ODataSingleResponse_1__DDF.Core.Entities.Office__DDF.Core__Version_1.0.0.0__Culture_neutral__PublicKeyToken_null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDF.Core.Models.CustomOdataError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDF.Core.Models.CustomOdataError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDF.Core.Models.CustomOdataError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDF.Core.Models.CustomOdataError'
    servers:
    - url: https://localhost:7051
  /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:

        The path-style is more intuitive and commonly used in RESTful APIs.

        The function-style follows OData conventions.


        <b>Path-style access: </b>```/odata/v1/Office/OfficeReplication```


        <b>Function-style access: </b>```/odata/v1/Office/OfficeReplication()```


        '
      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'
    servers:
    - url: https://localhost:7051
  /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'
    servers:
    - url: https://localhost:7051
components:
  schemas:
    DDF.Core.Entities.OfficeIdentifier:
      type: object
      properties:
        OfficeKey:
          type:
          - string
          - 'null'
          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.
          example: '12345'
        ModificationTimestamp:
          type:
          - string
          - 'null'
          description: Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).
          format: date-time
          example: '"2021-01-01T12:00:00.000Z"'
      additionalProperties: false
    DDF.Core.Entities.SocialMedia:
      type: object
      properties:
        SocialMediaKey:
          type:
          - string
          - 'null'
          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.
          example: SocialMediaKey
        ResourceRecordKey:
          type:
          - string
          - 'null'
          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.
          example: '12345'
        SocialMediaType:
          type:
          - String
          - 'null'
          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'
          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
          - 'null'
          description: The resource or table of the listing or other record the media relates to. i.e. Property, Member, Office, etc.
          format: 'Enum: ResourceName'
        SocialMediaUrlOrId:
          type:
          - string
          - 'null'
          description: The website URL or ID of social media site or account of the member.
          example: '"SocialMediaUrlOrId"'
      additionalProperties: false
    DDF.Core.Models.Error:
      type: object
      properties:
        details:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
        code:
          type:
          - string
          - 'null'
      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
          - 'null'
          example: https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office
        value:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DDF.Core.Entities.Office'
        '@odata.nextLink':
          type:
          - string
          - 'null'
          example: https://localhost:7051/odata/v1/DDF.Core.Entities.Office?skip=1
      additionalProperties: false
    DDF.Core.Entities.Office:
      type: object
      properties:
        OfficeKey:
          type:
          - string
          - 'null'
          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.
          example: OfficeKey
        OfficeMlsId:
          type:
          - string
          - 'null'
          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.
          example: OfficeMlsId
        OfficeAORKey:
          type:
          - string
          - 'null'
          description: A system unique identifier. This is the Board ID of the Office's Primary Board or Association of REALTORS.
          example: OfficeAORKey
        OfficeNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association ID of the office. i.e. In Canada, this is the CREA Organization ID of the Office.
          example: OfficeNationalAssociationId
        FranchiseNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association ID of the Franchisor. In Canada this would be the CREAID
          example: '0'
        OfficeBrokerNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association Id of the Brokerage Owner. In Canada this would be the CREAID
          example: OfficeBrokerNationalAssociationId
        OfficeAddress1:
          type:
          - string
          - 'null'
          description: The street number, direction, name and suffix of the office.
          example: OfficeAddress1
        OfficeAddress2:
          type:
          - string
          - 'null'
          description: The unit/suite number of the office.
          example: OfficeAddress2
        OfficeCity:
          type:
          - string
          - 'null'
          description: The city of the office.
          example: OfficeCity
        OfficeFax:
          type:
          - string
          - 'null'
          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.'
          example: OfficeFax
        OfficeName:
          type:
          - string
          - 'null'
          description: The legal name of the brokerage.
          example: OfficeName
        OfficePhone:
          type:
          - string
          - 'null'
          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.'
          example: OfficePhone
        OfficePhoneExt:
          type:
          - string
          - 'null'
          description: The extension of the given phone number (if applicable).
          example: OfficePhoneExt
        OfficePostalCode:
          type:
          - string
          - 'null'
          description: The postal code of the office.
          example: OfficePostalCode
        Media:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DDF.Core.Entities.Media'
          description: A collection of the types of media fields available for this Office.
        OfficeSocialMedia:
          type:
          - array
          - 'null'
          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
        ModificationTimestamp:
          type:
          - String
          - 'null'
          description: Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).
          format: 'Enum: DateTime'
          example: '"2021-01-01T12:00:00.000Z"'
        OriginalEntryTimestamp:
          type:
          - String
          - 'null'
          description: Date/time the office record was originally input into the source system (in Zulu time (UTC)).
          format: 'Enum: DateTime'
          example: '"2021-01-01T12:00:00.000Z"'
        OfficeType:
          type:
          - String
          - 'null'
          description: The type of business conducted by the office. i.e. Real Estate, Appraiser, etc.
          format: 'Enum: OfficeType'
          example: Real Estate
        OfficeStateOrProvince:
          type:
          - String
          - 'null'
          description: The state or province in which the office is located.
          format: 'Enum: StateOrProvince'
          example: Ontario
        OfficeAOR:
          type:
          - String
          - 'null'
          description: The Office's Board or Association of REALTORS.
          format: 'Enum: AOR'
          example: Affiliate
        OfficeStatus:
          type:
          - String
          - 'null'
          description: Is the office active, inactive or under disciplinary action.
          format: 'Enum: OfficeStatus'
          example: Active
        OfficeCountry:
          type:
          - String
          - 'null'
          description: The country in a postal address.
          format: 'Enum: Country'
          example: Canada
      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
          - 'null'
          example: https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office
        OfficeKey:
          type:
          - string
          - 'null'
          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.
          example: OfficeKey
        OfficeMlsId:
          type:
          - string
          - 'null'
          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.
          example: OfficeMlsId
        OfficeAORKey:
          type:
          - string
          - 'null'
          description: A system unique identifier. This is the Board ID of the Office's Primary Board or Association of REALTORS.
          example: OfficeAORKey
        OfficeNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association ID of the office. i.e. In Canada, this is the CREA Organization ID of the Office.
          example: OfficeNationalAssociationId
        FranchiseNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association ID of the Franchisor. In Canada this would be the CREAID
          example: '0'
        OfficeBrokerNationalAssociationId:
          type:
          - string
          - 'null'
          description: The national association Id of the Brokerage Owner. In Canada this would be the CREAID
          example: OfficeBrokerNationalAssociationId
        OfficeAddress1:
          type:
          - string
          - 'null'
          description: The street number, direction, name and suffix of the office.
          example: OfficeAddress1
        OfficeAddress2:
          type:
          - string
          - 'null'
          description: The unit/suite number of the office.
          example: OfficeAddress2
        OfficeCity:
          type:
          - string
          - 'null'
          description: The city of the office.
          example: OfficeCity
        OfficeFax:
          type:
          - string
          - 'null'
          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.'
          example: OfficeFax
        OfficeName:
          type:
          - string
          - 'null'
          description: The legal name of the brokerage.
          example: OfficeName
        OfficePhone:
          type:
          - string
          - 'null'
          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.'
          example: OfficePhone
        OfficePhoneExt:
          type:
          - string
          - 'null'
          description: The extension of the given phone number (if applicable).
          example: OfficePhoneExt
        OfficePostalCode:
          type:
          - string
          - 'null'
          description: The postal code of the office.
          example: OfficePostalCode
        Media:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DDF.Core.Entities.Media'
          description: A collection of the types of media fields available for this Office.
        OfficeSocialMedia:
          type:
          - array
          - 'null'
          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
        ModificationTimestamp:
          type:
          - String
          - 'null'
          description: Date/time the roster (member or office) record was last modified (in Zulu time (UTC)).
          format: 'Enum: DateTime'
          example: '"2021-01-01T12:00:00.000Z"'
        OriginalEntryTimestamp:
          type:
          - String
          - 'null'
          description: Date/time the office record was originally input into the source system (in Zulu time (UTC)).
          format: 'Enum: DateTime'
          example: '"2021-01-01T12:00:00.000Z"'
        OfficeType:
          type:
          - String
          - 'null'
          description: The type of business conducted by the office. i.e. Real Estate, Appraiser, etc.
          format: 'Enum: OfficeType'
          example: Real Estate
        OfficeStateOrProvince:
          type:
          - String
          - 'null'
          description: The state or province in which the office is located.
          format: 'Enum: StateOrProvince'
          example: Ontario
        OfficeAOR:
          type:
          - String
          - 'null'
          description: The Office's Board or Association of REALTORS.
          format: 'Enum: AOR'
          example: Affiliate
        OfficeStatus:
          type:
          - String
          - 'null'
          description: Is the office active, inactive or under disciplinary action.
          format: 'Enum: OfficeStatus'
          example: Active
        OfficeCountry:
          type:
          - String
          - 'null'
          description: The country in a postal address.
          format: 'Enum: Country'
          example: Canada
      additionalProperties: false
    DDF.Core.Entities.Media:
      type: object
      properties:
        MediaKey:
          type:
          - string
          - 'null'
          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.
          example: MediaKey
        LongDescription:
          type:
          - string
          - 'null'
          description: The full description of the object.
          example: REALTOR.ca Logo
        MediaURL:
          type:
          - string
          - 'null'
          description: The URI to the media file referenced by this record.
          example: https:///ddfcdn.realtor.ca/realtorlogo.png
        ModificationTimestamp:
          type:
          - String
          - 'null'
          description: Date/time the record was last modified (in Zulu time (UTC)).
          format: 'Enum: DateTime'
          example: '2019-08-24T14:15:22Z'
        Order:
          type:
          - integer
          - 'null'
          description: The order in which the media object is displayed.  Zero is the primary photo per RETS convention.
          format: int32
          example: 1
        PreferredPhotoYN:
          type:
          - boolean
          - 'null'
          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.
          example: true
        ResourceRecordId:
          type:
          - string
          - 'null'
          description: The well known identifier of the related record from the source resource.
          example: RealtorLogo.png
        ResourceRecordKey:
          type:
          - string
          - 'null'
          description: The primary key of the related record from the source resource.
          example: '1234'
        ResourceName:
          type:
          - String
          - 'null'
          description: The resource or table of the listing or other record the media relates to. i.e. Property, Member, Office, etc.
          format: 'Enum: ResourceName'
          example: Member
        MediaCategory:
          type:
          - String
          - 'null'
          description: Category describing the , Photos, Documents, Video, Unbranded Virtual Tour, Branded Virtual Tour, Floor Plan, Logo
          format: 'Enum: MediaCategory'
          example: Photo
      additionalProperties: false
    DDF.Core.Models.CustomOdataError:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/DDF.Core.Models.Error'
      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
          - 'null'
          example: https://localhost:7051/odata/v1/$metadata#DDF.Core.Entities.Office
        value:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DDF.Core.Entities.OfficeIdentifier'
      additionalProperties: false
x-refined-from:
- realtor-ca-ddf-web-api-docs-openapi.json
- realtor-ca-ddf-web-api-openapi.json
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