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-property-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: Realtor Ca Property API
version: '1.0'
contact:
name: Realtor Support
email: support@realtor.ca
license:
name: MIT
url: https://opensource.org/licenses/MIT
description: 'Operations tagged Property 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: Property
description: Get Properties
x-displayName: Property
paths:
/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'
servers:
- url: https://localhost:7051
/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.
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/Property/{PropertyKey}```
<b>Example: </b>```/odata/v1/Property/123456789```
<b>Function-style access: </b>```/odata/v1/Property(''{PropertyKey}'')```
<b>Example: </b>```/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'
servers:
- url: https://localhost:7051
/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:
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/Property/PropertyReplication```
<b>Function-style access: </b>```/odata/v1/Property/PropertyReplication()```
'
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'
servers:
- url: https://localhost:7051
/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'
servers:
- url: https://localhost:7051
components:
schemas:
DDF.Core.Models.CustomOdataError:
type: object
properties:
error:
$ref: '#/components/schemas/DDF.Core.Models.Error'
additionalProperties: false
DDF.Core.Entities.PropertyIdentifier:
type: object
properties:
ListingKey:
type:
- string
- 'null'
description: A unique identifier for this record from the immediate source.
example: '12345'
ModificationTimestamp:
type:
- string
- 'null'
description: The date and time the record was last updated in the source system (in Zulu time (UTC)).
format: date-time
example: '"2021-01-01T12:00:00.000Z"'
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.ODataSingleResponse_1__DDF.Core.Entities.Property__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.Property
ListingKey:
type:
- string
- 'null'
description: A unique identifier for this record from the immediate source.
example: '12345'
PropertySubType:
type:
- String
- 'null'
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'
example: Business
DocumentsAvailable:
type:
- Array of Strings
- 'null'
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'
example:
- Floor Plan, Site Plan
LeaseAmount:
type:
- number
- 'null'
description: The amount of any lease the business pays for it's current location.
format: double
example: 1000
LeaseAmountFrequency:
type:
- String
- 'null'
description: The frequency of the LeaseAmount is paid. Monthly, weekly, annual, etc.
format: 'Enum: FeeFrequency'
example: Monthly
BusinessType:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: The type of business being sold. Retail, Recreation, Restaurant, Residential, etc.
format: 'Enum: BusinessType'
example:
- Agriculture, Forestry
LeasePerUnit:
type:
- String
- 'null'
description: A pick list of the unit of measurement used for the lease per unit.
format: 'Enum: LotSizeUnits'
example: Acres
PricePerUnit:
type:
- String
- 'null'
description: A pick list of the unit of measurement used for the price per unit.
format: 'Enum: LotSizeUnits'
example: square feet
WaterBodyName:
type:
- string
- 'null'
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).
example: WaterBodyName
View:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A view as seen from the listed property.
format: 'Enum: View'
example:
- Ocean view
NumberOfBuildings:
type:
- integer
- 'null'
description: Total number of separate buildings included in the income property.
format: int32
example: 1
NumberOfUnitsTotal:
type:
- integer
- 'null'
description: Total number of units included in the income property, occupied or unoccupied.
format: int32
example: 45
LotFeatures:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A list of features or description of the lot included in the sale/lease.
format: 'Enum: LotFeatures'
example:
- Acreage
LotSizeArea:
type:
- number
- 'null'
description: The total area of the lot. See Lot Size Units for the units of measurement (Square Feet, Square Meters, Acres, etc.).
format: double
example: 1
LotSizeDimensions:
type:
- string
- 'null'
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.
example: 60 X 262
LotSizeUnits:
type:
- String
- 'null'
description: A pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.
format: 'Enum: LotSizeUnits'
example: Acres
PoolFeatures:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A list of features or description of the pool included in the sale/lease.
format: 'Enum: PoolFeatures'
example:
- On Ground Pool
RoadSurfaceType:
type:
- Array of Strings
- 'null'
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'
example:
- Paved road
CurrentUse:
type:
- Array of Strings
- 'null'
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'
example:
- Recreational
PossibleUse:
type:
- Array of Strings
- 'null'
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'
example:
- Agriculture - active
AnchorsCoTenants:
type:
- string
- 'null'
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.
example: AnchorsCoTenant
WaterfrontFeatures:
type:
- Array of Strings
- 'null'
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'
CommunityFeatures:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A list of features related to, or available within, the community.
format: 'Enum: CommunityFeatures'
FrontageLengthNumeric:
type:
- number
- 'null'
description: A numeric representation of the length of the frontage.
format: double
example: 400
FrontageLengthNumericUnits:
type:
- String
- 'null'
description: The unit of measurement used for the value in the FrontageLengthNumeric fields. e.g. feet, meters, etc.
format: 'Enum: LinearUnits'
Fencing:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A list of types of fencing at the property.
format: 'Enum: Fencing'
Appliances:
type:
- Array of Strings
- 'null'
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'
example:
- Dryer - Electric
OtherEquipment:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: 'A list of other equipment that will be included in the sale of the property. '
format: 'Enum: OtherEquipment'
example:
- Unknown
SecurityFeatures:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: A list describing the security features included in the sale/lease.
format: 'Enum: SecurityFeatures'
TotalActualRent:
type:
- number
- 'null'
description: Total actual rent currently being collected from tenants of the income property.
format: double
example: 300
ExistingLeaseType:
type:
- Array of Strings
- 'null'
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'
example:
- Percentage
AssociationFee:
type:
- number
- 'null'
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
example: 10
AssociationFeeFrequency:
type:
- String
- 'null'
description: The frequency the Association fee is paid. For example, Weekly, Monthly, Annually, Bi-Monthly, One Time, etc.
format: 'Enum: FeeFrequency'
example: Monthly
AssociationName:
type:
- string
- 'null'
description: The name of the Home Owners Association.
example: AssociationName
AssociationFeeIncludes:
type:
- Array of Strings
- 'null'
items:
type: integer
format: int32
description: Services included with the association fee. For example Landscaping, Trash, Water, etc.
format: 'Enum: AssociationFeeIncludes'
example:
- Management
OriginalEntryTimestamp:
type:
- String
- 'null'
description: The date and time the record was inserted into the source system (in Zulu time (UTC)).
format: 'Enum: DateTime'
example: '"2021-01-01T00:00:00.000Z"'
ModificationTimestamp:
type:
- String
- 'null'
description: The date and time the record was last updated in the source system (in Zulu time (UTC)).
format: 'Enum: DateTime'
example: '"2021-01-01T00:00:00.000Z"'
AvailabilityDate:
type:
- string
- 'null'
description: The date the property will be available for possession/occupation.
format: date-time
example: '"2021-01-01T00:00:00.000Z"'
ListingId:
type:
- string
- 'null'
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.
example: '00001'
ListAgentNationalAssociationId:
type:
- string
- 'null'
description: A system unique identifier. This is the primary MemberKey that the property belongs to.
example: '00001'
CoListAgentNationalAssociationId:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: '00001'
CoListAgentNationalAssociationId2:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: '00001'
CoListAgentNationalAssociationId3:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: '00001'
InternetEntireListingDisplayYN:
type:
- boolean
- 'null'
description: A yes/no field that states the seller has allowed the listing to be displayed on Internet sites.
example: true
StandardStatus:
type:
- String
- 'null'
description: The status of the listing. This is a Single Select field.
format: 'Enum: StandardStatus'
StatusChangeTimestamp:
type:
- String
- 'null'
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'
example: '"2021-01-01T00:00:00.000Z"'
PublicRemarks:
type:
- string
- 'null'
description: Text remarks that may be displayed to the public.
example: PRIME COMMERCIAL LOCATION.
ListPrice:
type:
- number
- 'null'
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
example: 800000
Inclusions:
type:
- string
- 'null'
description: Portable elements of the property that will be included in the sale.
example: Inclusions
ListOfficeKey:
type:
- string
- 'null'
description: A system unique identifier. This is the OfficeKey that the property belongs to.
example: ListOfficeKey
CoListOfficeKey:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
example: CoListOfficeKey
CoListOfficeKey2:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
CoListOfficeKey3:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
example: CoListOfficeKey3
ListOfficeNationalAssociationId:
type:
- string
- 'null'
description: A system unique identifier. This is the primary OfficeKey that the property belongs to.
example: ListOfficeNationalAssociationId
CoListOfficeNationalAssociationId:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
example: CoListOfficeNationalAssociationId
CoListOfficeNationalAssociationId2:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
example: CoListOfficeNationalAssociationId2
CoListOfficeNationalAssociationId3:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary OfficeKey that the property belongs to.
example: CoListOfficeNationalAssociationId3
CoListAgentKey:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: CoListAgentKey
CoListAgentKey2:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: CoListAgentKey2
CoListAgentKey3:
type:
- string
- 'null'
description: A system unique identifier. This is the secondary MemberKey that the property belongs to.
example: CoListAgentKey3
ListAgentKey:
type:
- string
- 'null'
description: A system unique identifier. This is the MemberKey that the property belongs to.
example: ListAgentKey
InternetAddressDisplayYN:
type:
- boolean
- 'null'
description: A yes/no field that states the seller has allowed the listing address to be displayed on Internet sites.
example: true
ListingURL:
type:
- string
- 'null'
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.
OriginatingSystemName:
type:
- string
- 'null'
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.
PhotosCount:
type:
- integer
- 'null'
description: The total number of pictures or photos included with the listing.
format: int32
PhotosChangeTimestamp:
type:
- String
- 'null'
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'
example: '"2021-01-01T00:00:00.000Z"'
CommonInterest:
type:
- String
- 'null'
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'
example: Business
ListAOR:
type:
- String
- 'null'
description: The responsible board or association of REALTORS® for this listing.
format: 'Enum: AOR'
example: Fredericton
ListAORKey:
type:
- string
- 'null'
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.
UnparsedAddress:
type:
- string
- 'null'
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.
example: UnparsedAddress
PostalCode:
type:
- string
- 'null'
description: The postal code portion of a street or mailing address.
example: PostalCode
SubdivisionName:
type:
- string
- 'null'
description: A neighborhood, community, complex or builder tract.
example: SubdivisionName
StateOrProvince:
type:
- String
- 'null'
description: Text field containing the accepted postal abbreviation for the state or province.
format: 'Enum: StateOrProvince'
example: Ontario
StreetDirPrefix:
type:
- String
- 'null'
description: The direction indicator that precedes the listed property's street name.
format: 'Enum: StreetDir'
example: North
StreetDirSuffix:
type:
- String
- 'null'
description: The direction indicator that follows a listed property's street address.
format: 'Enum: StreetDir'
example: South
StreetName:
type:
- string
- 'null'
description: The street name portion of a listed property's street address.
example: StreetName
StreetNumber:
type:
- string
- 'null'
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.
# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/realtor-ca/refs/heads/main/openapi/realtor-ca-property-api-openapi.yml