# generated: 2026-07-26 # method: derived # source: https://www.npmjs.com/package/n8n-nodes-apex27portal (v0.1.0, dist/nodes/Apex27Portal/Apex27Portal.node.js) openapi: 3.1.0 info: title: Apex27 Portal API version: 0.1.0 summary: Per-tenant, website-facing search and enquiry API powering Apex27-built estate agency websites. description: 'API Evangelist DERIVED description of the Apex27 Portal API. Apex27 publishes no OpenAPI, Swagger or reference documentation for this surface. This document was derived mechanically from Apex27''s OWN published n8n community node — npm n8n-nodes-apex27portal@0.1.0, publisher "james_apex27" — which contains the complete operation set, query and form parameters, enumerations and the auth mechanism. It is NOT a provider-published contract. The Portal API has no shared host: the base URL is each agency''s own Apex27 portal domain with `/api` appended. The server URL below uses the vendor''s OWN published placeholder host verbatim; substitute the agency domain. Authentication is an `api_key` query-string parameter issued under Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.' contact: name: Apex27 url: https://apex27.co.uk/contact-apex27 x-apievangelist-provenance: method: derived generated: '2026-07-26' provider_published: false source: https://www.npmjs.com/package/n8n-nodes-apex27portal (v0.1.0, dist/nodes/Apex27Portal/Apex27Portal.node.js) source_publisher: james_apex27 (Apex27) evidence: - kind: npm-package url: https://registry.npmjs.org/n8n-nodes-apex27portal note: v0.1.0 — Apex27Portal.node.js holds every endpoint and parameter reproduced here. - kind: npm-package url: https://registry.npmjs.org/n8n-nodes-apex27portal note: Apex27PortalApi.credentials.js declares the api_key query parameter and the https://portal-abcd1234.apex27.co.uk/api base-URL placeholder used as the server below. caveat: Per-tenant API. There is no shared production host to probe, so no live status codes were recorded for this surface. 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. security: - PortalApiKey: [] tags: - name: Listings description: Portal inventory search and retrieval. - name: Enquiries description: Website enquiries and valuation requests. - name: Favourites description: Saved listings for a portal contact. - name: Statistics description: Portal inventory statistics. paths: /get-listings: get: operationId: getListings summary: Search listings description: Search the agency portal inventory across sales, lettings, commercial and land. tags: - Listings parameters: - &id001 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: &id006 - 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 - &id002 name: image_size in: query required: false schema: type: string enum: - tiny - small - medium - large - custom - &id003 name: image_mode in: query required: false schema: type: string - &id004 name: image_width in: query required: false schema: type: integer - &id005 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. /get-listing: get: operationId: getListing summary: Get a listing description: Retrieve a single listing by identifier, with image rendering options. tags: - Listings parameters: - *id001 - name: id in: query required: true schema: type: integer - *id002 - *id003 - *id004 - *id005 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. /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: - *id001 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. /get-statistics: get: operationId: getStatistics summary: Get portal statistics description: Retrieve portal inventory statistics for a transaction type over an optional date range. tags: - Statistics parameters: - *id001 - name: transaction_type in: query required: true schema: type: string enum: *id006 - name: date_start in: query required: false schema: type: string description: ISO date. - name: date_end in: query required: false schema: type: string description: ISO date. 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. /contact: post: operationId: contactAgent summary: Send an enquiry to the agent description: Submit a website enquiry against a listing, a listing reference or a branch. tags: - Enquiries parameters: - *id001 requestBody: required: true description: Form-encoded enquiry. The vendor node posts this as application/x-www-form-urlencoded. content: application/x-www-form-urlencoded: schema: type: object required: - first_name - last_name - email properties: first_name: type: string last_name: type: string email: type: string format: email listing_id: type: integer description: One of listing_id, listing_reference or branch_id targets the enquiry. listing_reference: type: string branch_id: type: integer request_listing_details: type: integer enum: - 0 - 1 request_viewing: type: integer enum: - 0 - 1 request_valuation: type: integer enum: - 0 - 1 source_id: type: integer additionalProperties: true 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. /request-valuation: post: operationId: requestValuation summary: Request a valuation description: Submit a market-appraisal request from the agency website. tags: - Enquiries parameters: - *id001 requestBody: required: true description: Form-encoded valuation request. content: application/x-www-form-urlencoded: schema: type: object required: - first_name - last_name - email - address_1 - city - postal_code - transaction_type properties: first_name: type: string last_name: type: string email: type: string format: email address_1: type: string city: type: string postal_code: type: string transaction_type: type: string enum: *id006 title: type: string enum: - mr - mrs - miss - ms - dr - prof country: type: string tenure: type: string enum: - freehold - leasehold - share_of_freehold - commonhold condition: type: string enum: - new_build - good - average - poor furnished: type: string enum: - furnished - part_furnished - unfurnished outside_spaces[]: type: array items: type: string latitude: type: number longitude: type: number additionalProperties: true 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. /add-favourite: post: operationId: addFavourite summary: Add a listing to a contact favourites description: Save a listing against a portal contact. tags: - Favourites parameters: - *id001 requestBody: required: true description: Form-encoded favourite. content: application/x-www-form-urlencoded: schema: type: object required: - listing_id - contact_id properties: listing_id: type: integer contact_id: type: integer additionalProperties: true 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. /remove-favourite: post: operationId: removeFavourite summary: Remove a listing from a contact favourites description: Remove a saved listing from a portal contact. tags: - Favourites parameters: - *id001 requestBody: required: true description: Form-encoded favourite. content: application/x-www-form-urlencoded: schema: type: object required: - listing_id - contact_id properties: listing_id: type: integer contact_id: type: integer additionalProperties: true 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. components: securitySchemes: PortalApiKey: type: apiKey in: query name: api_key description: Portal API key from Admin Panel > Websites > [Your Website] > Integrations tab > Portal API section.