Apex27 Listings API
Sales, lettings, land and commercial property records.
Sales, lettings, land and commercial property records.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/apex27-listings-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Apex27 Listings API
contact:
name: Apex27
url: https://apex27.co.uk/contact-apex27
x-refined-note:
- x-apievangelist-provenance differs across the merged source definitions and was not carried
version: '1.0'
description: 'Operations tagged Listings across 2 of this provider''s published API definitions: apex27-crm-api-openapi.yml, apex27-portal-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.apex27.co.uk
description: Production
- url: https://dev-api.apex27.co.uk
description: Development (key-gated, not an open sandbox)
- url: https://portal-abcd1234.apex27.co.uk/api
description: Per-tenant portal host. Vendor-published placeholder — replace with the agency's own Apex27 website domain + /api.
tags:
- name: Listings
description: Sales, lettings, land and commercial property records.
paths:
/listings:
get:
operationId: listListings
summary: Get many listings
description: Get many listings. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
parameters:
- name: branchId
in: query
required: false
schema:
type: integer
- name: contactId
in: query
required: false
schema:
type: integer
- name: email
in: query
required: false
schema:
type: string
- name: uuid
in: query
required: false
schema:
type: string
- name: externalId
in: query
required: false
schema:
type: string
- name: transactionType
in: query
required: false
schema:
type: string
enum:
- Sale
- Rent
- Land
- Commercial Sale
- Commercial Rent
- name: minBeds
in: query
required: false
schema:
type: integer
- name: minBaths
in: query
required: false
schema:
type: integer
- name: minPrice
in: query
required: false
schema:
type: number
- name: maxPrice
in: query
required: false
schema:
type: number
- name: city
in: query
required: false
schema:
type: string
- name: websiteStatus
in: query
required: false
schema:
type: string
- name: mainSearchRegionId
in: query
required: false
schema:
type: integer
- name: archived
in: query
required: false
schema:
type: boolean
- name: activeTenancies
in: query
required: false
schema:
type: boolean
- name: minDtsCreatedUpdated
in: query
required: false
schema:
type: string
- name: minDtsUpdated
in: query
required: false
schema:
type: string
- name: includeContacts
in: query
required: false
schema:
type: boolean
- name: includeImages
in: query
required: false
schema:
type: boolean
- name: includeOffers
in: query
required: false
schema:
type: boolean
- name: includeValuations
in: query
required: false
schema:
type: boolean
- name: includeRooms
in: query
required: false
schema:
type: boolean
- name: page
in: query
required: false
description: Page number (minimum 1).
schema:
type: integer
minimum: 1
default: 1
- name: pageSize
in: query
required: false
description: Records per page (minimum 25, maximum 250).
schema:
type: integer
minimum: 25
maximum: 250
default: 25
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
post:
operationId: createListing
summary: Create a listing
description: Create a listing. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
requestBody:
required: true
description: Request body. The Apex27 CRM API accepts a JSON object; the vendor node passes the object through unmodified.
content:
application/json:
schema:
type: object
additionalProperties: true
required:
- branchId
- contactId
properties:
branchId: {}
contactId: {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
servers:
- url: https://api.apex27.co.uk
description: Production
- url: https://dev-api.apex27.co.uk
description: Development (key-gated, not an open sandbox)
/listings/{listingId}:
get:
operationId: getListing
summary: Get a listing
description: Get a listing. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
parameters:
- name: listingId
in: path
required: true
schema:
type: integer
description: Apex27 listing identifier.
- name: includeContacts
in: query
required: false
schema:
type: boolean
- name: includeImages
in: query
required: false
schema:
type: boolean
- name: includeOffers
in: query
required: false
schema:
type: boolean
- name: includeValuations
in: query
required: false
schema:
type: boolean
- name: includeRooms
in: query
required: false
schema:
type: boolean
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
put:
operationId: replaceListing
summary: Replace a listing in full
description: Replace a listing in full. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
parameters:
- name: listingId
in: path
required: true
schema:
type: integer
description: Apex27 listing identifier.
requestBody:
required: true
description: Request body. The Apex27 CRM API accepts a JSON object; the vendor node passes the object through unmodified.
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
patch:
operationId: patchListing
summary: Partially update a listing
description: Partially update a listing. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
parameters:
- name: listingId
in: path
required: true
schema:
type: integer
description: Apex27 listing identifier.
requestBody:
required: true
description: Request body. The Apex27 CRM API accepts a JSON object; the vendor node passes the object through unmodified.
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
delete:
operationId: deleteListing
summary: Delete a listing
description: Delete a listing. Derived from the request the Apex27-published n8n node issues for this resource and operation.
tags:
- Listings
parameters:
- name: listingId
in: path
required: true
schema:
type: integer
description: Apex27 listing identifier.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorised'
'404':
$ref: '#/components/responses/NotFound'
security:
- ApiKeyAuth: []
servers:
- url: https://api.apex27.co.uk
description: Production
- url: https://dev-api.apex27.co.uk
description: Development (key-gated, not an open sandbox)
/get-listings:
get:
operationId: getListings
summary: Search listings
description: Search the agency portal inventory across sales, lettings, commercial and land.
tags:
- Listings
parameters:
- name: api_key
in: query
required: true
schema:
type: string
description: Portal API key, issued under Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.
- name: transaction_type
in: query
required: false
schema:
type: string
enum:
- sales
- lettings
- commercial_sales
- commercial_lettings
- holiday_lettings
- land
description: Required if property_class is not set.
- name: property_class
in: query
required: false
schema:
type: string
enum:
- sale
- rent
description: Required if transaction_type is not set.
- name: city
in: query
required: false
schema:
type: string
- name: county
in: query
required: false
schema:
type: string
- name: country
in: query
required: false
schema:
type: string
- name: location
in: query
required: false
schema:
type: string
- name: property_type
in: query
required: false
schema:
type: string
- name: keywords[]
in: query
required: false
schema:
type: array
description: Repeatable keyword filter.
- name: min_price
in: query
required: false
schema:
type: number
- name: max_price
in: query
required: false
schema:
type: number
- name: min_beds
in: query
required: false
schema:
type: integer
- name: max_beds
in: query
required: false
schema:
type: integer
- name: min_baths
in: query
required: false
schema:
type: integer
- name: website_status
in: query
required: false
schema:
type: string
- name: search_region_ids[]
in: query
required: false
schema:
type: array
description: Repeatable search-region identifier filter.
- name: main_search_region_id
in: query
required: false
schema:
type: integer
- name: min_gross_yield
in: query
required: false
schema:
type: number
- name: overseas
in: query
required: false
schema:
type: integer
enum:
- 0
- 1
description: Boolean flag sent as 1 or 0.
- name: featured
in: query
required: false
schema:
type: integer
enum:
- 0
- 1
description: Boolean flag sent as 1 or 0.
- name: include_sstc
in: query
required: false
schema:
type: integer
enum:
- 0
- 1
description: Include Sold STC / Let Agreed. Sent as 1 or 0.
- name: sw
in: query
required: false
schema:
type: string
description: South-west corner of a bounding box.
- name: ne
in: query
required: false
schema:
type: string
description: North-east corner of a bounding box.
- name: image_count
in: query
required: false
schema:
type: integer
- name: image_size
in: query
required: false
schema:
type: string
enum:
- tiny
- small
- medium
- large
- custom
- name: image_mode
in: query
required: false
schema:
type: string
- name: image_width
in: query
required: false
schema:
type: integer
- name: image_height
in: query
required: false
schema:
type: integer
- name: sort
in: query
required: false
schema:
type: string
enum:
- featured
- newest
- oldest
- highest_price
- lowest_price
- nearest
- newly_instructed
- name: page
in: query
required: false
schema:
type: integer
- name: page_size
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
description: Unauthorised. The api_key query parameter is missing or invalid for this portal.
security:
- PortalApiKey: []
servers:
- url: https://portal-abcd1234.apex27.co.uk/api
description: Per-tenant portal host. Vendor-published placeholder — replace with the agency's own Apex27 website domain + /api.
/get-listing:
get:
operationId: getListing
summary: Get a listing
description: Retrieve a single listing by identifier, with image rendering options.
tags:
- Listings
parameters:
- name: api_key
in: query
required: true
schema:
type: string
description: Portal API key, issued under Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.
- name: id
in: query
required: true
schema:
type: integer
- name: image_size
in: query
required: false
schema:
type: string
enum:
- tiny
- small
- medium
- large
- custom
- name: image_mode
in: query
required: false
schema:
type: string
- name: image_width
in: query
required: false
schema:
type: integer
- name: image_height
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
description: Unauthorised. The api_key query parameter is missing or invalid for this portal.
security:
- PortalApiKey: []
servers:
- url: https://portal-abcd1234.apex27.co.uk/api
description: Per-tenant portal host. Vendor-published placeholder — replace with the agency's own Apex27 website domain + /api.
/get-search-options:
get:
operationId: getSearchOptions
summary: Get search options
description: Retrieve the filter vocabularies (regions, property types, price bands) the portal search accepts.
tags:
- Listings
parameters:
- name: api_key
in: query
required: true
schema:
type: string
description: Portal API key, issued under Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
description: Unauthorised. The api_key query parameter is missing or invalid for this portal.
security:
- PortalApiKey: []
servers:
- url: https://portal-abcd1234.apex27.co.uk/api
description: Per-tenant portal host. Vendor-published placeholder — replace with the agency's own Apex27 website domain + /api.
components:
schemas:
Error:
type: object
description: Apex27 CRM API error envelope, recorded verbatim from a live 401 response.
properties:
success:
type: boolean
message:
type: string
errors:
type: array
items:
type: object
additionalProperties: true
required:
- success
- message
examples:
- success: false
message: Unauthorised.
errors: []
responses:
NotFound:
description: The requested resource or route does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorised:
description: Unauthorised. The `x-api-key` header is missing, malformed or not valid for this tenant.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
message: Unauthorised.
errors: []
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: API key issued to a paying Apex27 tenant from the CRM admin panel. No self-serve issuance.
PortalApiKey:
type: apiKey
in: query
name: api_key
description: Portal API key from Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.
x-refined-from:
- apex27-crm-api-openapi.yml
- apex27-portal-api-openapi.yml