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/crea-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: 3.2.0
info:
title: Crea Office API
contact:
name: Realtor Support
email: support@realtor.ca
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: '1.0'
description: 'Operations tagged Office across 3 of this provider''s published API definitions: crea-realtor-ca-board-api-openapi.json, crea-realtor-ca-ddf-web-api-openapi.json, crea-realtor-ca-ddf-web-api-swagger-endpoint-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://boardapi.realtor.ca/
- url: https://localhost:7051
tags:
- name: Office
description: This transaction is used to retrieve Office details for the specific board. Boards can access Office information of other Boards based on permissions granted.
x-displayName: Office Operations
paths:
/Office:
get:
tags:
- Office
summary: Get a list of offices
parameters:
- name: skip
in: query
description: 'Skips this number of results. Default: 0'
schema:
type: integer
format: int32
- name: top
in: query
description: 'Request the server start at other than the first record in the set of matching records. Default: 0'
schema:
type: integer
format: int32
- name: count
in: query
description: 'Request the server to apply a limit on the number of records returned. Default: 100. Maximum of 1000 records enforced.'
schema:
type: boolean
- name: officeAORKey
in: query
description: A system unique identifier. This is the Board ID of the Office's Primary Board or Association of REALTORS.
schema:
type: string
- name: modificationTimestamp
in: query
description: Date/time the office record was last modified
schema:
type: string
- name: officeStatus
in: query
description: Is the office active, inactive or under disciplinary action.
schema:
enum:
- Active
- Inactive
type: string
default: Active
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Office'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
servers:
- url: https://boardapi.realtor.ca/
/Office/{OfficeNationalAssociationId}:
get:
tags:
- Office
summary: Get a single office by the OfficeNationalAssociationId
parameters:
- name: officeNationalAssociationId
in: path
description: The national association ID of the office. i.e. In Canada, this is the Organization ID of the Office.
required: true
schema:
type: string
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Office'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
servers:
- url: https://boardapi.realtor.ca/
/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:
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: '123'
SocialMediaUrlOrId:
type:
- string
- 'null'
description: The website URL or ID of social media site or account of the member.
example: https:///www.abc.com
SocialMediaType:
enum:
- Website
- FaceBook
- LinkedIn
- Twitter
- Instagram
type:
- string
- 'null'
description: "For the complete list of enum values, please visit https://support.crea.ca/Boards/NDS/LookupTypes. \n\n The type of sites, blog, social media, the Member URL or ID is referring to."
example: Facebook
ResourceName:
enum:
- Office
- Member
- Property
type:
- string
- 'null'
description: The resource or table of the listing or other record the media relates to.
example: Office
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: '91'
ModificationTimestamp:
type:
- string
- 'null'
description: The transactional timestamp automatically recorded by the MLS system representing the date/time the media record was last modified.
format: date-time
example: '2021-01-01T00:00:00Z'
SocialMediaTypeId:
type:
- string
- 'null'
writeOnly: true
ResourceNameId:
type:
- string
- 'null'
writeOnly: true
SocialMediaKeyNumeric:
type: integer
format: int32
writeOnly: true
ResourceRecordKeyNumeric:
type:
- integer
- 'null'
format: int32
writeOnly: true
additionalProperties: false
Media:
type: object
properties:
MediaKey:
type:
- string
- 'null'
description: A unique identifier for this record from the immediate source.
example: '1234'
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
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: '123'
MediaCategory:
enum:
- Alternate Feature Sheet Website
- Video Tour Website
- Sound Bite Website
- Sales Brochure Website
- Additional Pictures Website
type:
- string
- 'null'
description: "For the complete list of enum values, please visit https://support.crea.ca/Boards/NDS/LookupTypes. \n\n Category describing the , Photos, Documents, Video, Unbranded Virtual Tour, Branded Virtual Tour, Floor Plan, Logo"
example: Office Logo
ResourceName:
enum:
- Office
- Member
- Property
type:
- string
- 'null'
description: The resource or table of the listing or other record the media relates to. i.e. Property, Member, Office, etc.
example: Office
ResourceRecordKey:
type:
- string
- 'null'
description: The primary key of the related record from the source resource.
example: '1234'
ModificationTimestamp:
type:
- string
- 'null'
description: Date/time the record was last modified.
format: date-time
example: '2019-08-24T14:15:22Z'
ResourceNameId:
type:
- string
- 'null'
writeOnly: true
MediaCategoryId:
type:
- string
- 'null'
writeOnly: true
MediaKeyNumeric:
type: integer
format: int64
writeOnly: true
ResourceRecordKeyNumeric:
type:
- integer
- 'null'
format: int32
writeOnly: true
additionalProperties: false
ProblemDetails:
type: object
properties:
type:
type:
- string
- 'null'
title:
type:
- string
- 'null'
status:
type:
- integer
- 'null'
format: int32
detail:
type:
- string
- 'null'
instance:
type:
- string
- 'null'
additionalProperties: {}
Office:
type: object
properties:
OfficeName:
type:
- string
- 'null'
description: The legal name of the brokerage.
example: ABC Real Estate Board
OfficeStatus:
enum:
- Active
- Inactive
type:
- string
- 'null'
description: Is the office active, inactive or under disciplinary action.
example: Active
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: '123'
OfficeBrokerNationalAssociationId:
type:
- string
- 'null'
description: The national association Id of the Brokerage Owner. In Canada this would be the CREAID
example: '456'
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: 21XA
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: '12'
OfficeAOR:
enum:
- Abitibi-Témiscamingue
- Alberta West
- AREA
- ASR
- Bancroft
type:
- string
- 'null'
description: "For the complete list of enum values, please visit https://support.crea.ca/Boards/NDS/LookupTypes. \n\n The Office's Board or Association of REALTORS."
example: Yukon
OfficeType:
enum:
- Affiliate
- Firm
- Territorial Association
- Franchisor
- Provincial Association
type:
- string
- 'null'
description: "For the complete list of enum values, please visit https://support.crea.ca/Boards/NDS/LookupTypes. \n\n The type of business conducted by the office."
example: Provincial Association
OfficeAddress1:
type:
- string
- 'null'
description: The street number, direction, name and suffix of the office.
example: 200 Catherine St.
OfficeAddress2:
type:
- string
- 'null'
description: The unit/suite number of the office.
example: '5'
OfficeCity:
type:
- string
- 'null'
description: The city of the office.
example: Ottawa
OfficeStateOrProvince:
enum:
- Alberta
- British Columbia
- Manitoba
- New Brunswick
- Newfoundland & Labrador
type:
- string
- 'null'
description: "For the complete list of enum values, please visit https://support.crea.ca/Boards/NDS/LookupTypes. \n\n The state or province in which the office is located."
example: Ontario
OfficePostalCode:
type:
- string
- 'null'
description: The postal code of the office.
example: A1C 2B2
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: 123-456-7890
OfficePhoneExt:
type:
- string
- 'null'
description: The extension of the given phone number (if applicable).
example: '12'
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: 123-456-7890
FranchiseNationalAssociationId:
type:
- string
- 'null'
description: The national association ID of the Franchisor. In Canada this would be the CREAID
example: '123'
Media:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Media'
description: A collection of the types of media fields available for this Office.
OfficeSocialMedia:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/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 office record was last modified.
format: date-time
example: '2021-01-01T12:00:00Z'
OriginalEntryTimestamp:
type:
- string
- 'null'
description: Date/time the office record was originally input into the source system.
format: date-time
example: '2021-01-01T12:00:00Z'
OfficeEmail:
type:
- string
- 'null'
description: The email address of the office
example: abc@office.ca
OfficeAORId:
type:
- string
- 'null'
writeOnly: true
OfficeStatusId:
type:
- string
- 'null'
writeOnly: true
OfficeStateOrProvinceId:
type:
- string
- 'null'
writeOnly: true
OfficeTypeId:
type:
- string
- 'null'
writeOnly: true
OfficeAORKeyNumeric:
type: integer
format: int32
writeOnly: true
RESOTransformTimestamp:
type:
- string
- 'null'
format: date-time
writeOnly: true
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.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
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/crea/refs/heads/main/openapi/crea-office-api-openapi.yml