Apex27 Listings API

Sales, lettings, land and commercial property records.

Operations 9

GET /listings Get many listings #
POST /listings Create a listing #
GET /listings/{listingId} Get a listing #
PUT /listings/{listingId} Replace a listing in full #
PATCH /listings/{listingId} Partially update a listing #
DELETE /listings/{listingId} Delete a listing #
GET /get-listings Search listings #
GET /get-listing Get a listing #
GET /get-search-options Get search options #

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/apex27-listings-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

apex27-listings-api-openapi.yml Raw ↑
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