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/landmark-information-quotes-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 email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Landmark Conveyancing Experience Quotes API
description: "# Overview\n\nThe Conveyancing API is where you quote for, instruct, and manage conveyancing work with Landmark. Whether you're referring work to a panel conveyancer or handling the cases that come your way, you do it through one API and against one shared case record.\n\nThe first thing it supports is panel conveyancing through Optimus: as an **introducer** you create a quote, choose a conveyancer, and instruct them on your client's behalf; as a **conveyancer** you pick up the cases assigned to you and keep the introducer updated as the work moves forward. That's the workflow this documentation focuses on, though the API will grow to cover more of how you connect to conveyancing over time.\n\nThroughout, a quote becomes a case once instructed, both sides share one case record, and you only see the cases your account is party to.\n\n# Availability\n\nFunctionality is being made available in UAT as it becomes ready to test. We'll keep this section updated as each drop lands.\n\nThe **Quotes** and **Cases** endpoints have a settled schema and you can use them as a reference to start your integration work. Endpoints still undergoing final design and build work are marked **Preview** in the reference below — currently **Add Document** and **Retrieve Document**. They're here so you can see where the API is heading, but please don't build against them yet.\n\nYour Landmark contact will confirm what's available to you and when.\n\n# Getting started\n\nThe API is a REST service over HTTPS. You send and receive JSON, apart from document uploads, which use `multipart/form-data`, and PDF or document downloads, which return the file itself.\n\n| Environment | Base URL | Use it for |\n|---|---|---|\n| UAT | `https://uat-api.landmarkcloudservices.com/conveyances` | Building and testing your integration |\n| Production | `https://api.landmarkcloudservices.com/conveyances` | Live cases |\n\nYou'll start with UAT credentials, then move to production once your integration is ready to go live.\n\n## Authentication\n\nThe API uses OAuth 2.0 with the client credentials grant. When you're onboarded you'll receive a client ID and secret. These identify your account, so there's no separate account header to send.\n\n**1. Get an access token** by POSTing your credentials to the token endpoint for your environment:\n\n- UAT: `https://lmkmaster-uat.eu.auth0.com/oauth/token`\n- Production: `https://lmkmaster.eu.auth0.com/oauth/token`\n\n```json\n{\n \"client_id\": \"your-client-id\",\n \"client_secret\": \"your-client-secret\",\n \"audience\": \"https://api.landmarkcloudservices.com\",\n \"grant_type\": \"client_credentials\"\n}\n```\n\nYou'll get back an `access_token` (a JWT) and an `expires_in` value. Cache and reuse the token until it's close to expiring rather than fetching a new one for every call.\n\n**2. Send the token on every request:**\n\n- `Authorization: Bearer <access_token>`\n\nA `401` means your token is missing or invalid. A `403` means your account isn't entitled to that operation; contact support if you think that's wrong.\n\n## Errors and support\n\nStandard HTTP status codes apply: `400` validation, `401` authentication, `403` not entitled, `404` not found, `429` too many requests, `5xx` server error.\n\nWhen something goes wrong you'll get back a consistent JSON shape:\n\n```json\n{\n \"status\": \"400\",\n \"code\": \"40001\",\n \"title\": \"Validation error\",\n \"messages\": [\n { \"property\": \"propertyAddress.postcode\", \"message\": \"Postcode is required\" }\n ]\n}\n```\n\nEvery response includes a `traceresponse` header that uniquely identifies your request. Quote it when you contact support so we can find it quickly.\n\nSupport Contact: TBC\n"
version: 0.8.1
servers:
- url: https://api.landmarkcloudservices.com/conveyances
description: Production environment
- url: https://uat-api.landmarkcloudservices.com/conveyances
description: Test environment
security:
- BearerAuth: []
tags:
- name: Quotes
description: 'Quotes are where a job begins. You build a quote for your client''s transaction, get back the panel conveyancers available to you with their pricing, and instruct one of them to turn the quote into a live case.
A single request can cover a standalone transaction (one quote) or a combined sale and purchase (two quotes, one for each side). You choose what you''re quoting for with a product schema, which sets the questions that apply. See [Product Schemas](#tag/Product-Schemas).
To instruct, pass the `conveyancerId` of one of the conveyancers returned for the quote. That creates the case and makes the details available to the conveyancer you''ve chosen.
'
paths:
/quotes:
post:
summary: Create New Quote
description: 'Create a quote for your client''s transaction. Provide the property address, the applicants, the account roles, and the product details, and you''ll get back the panel conveyancers available to you with their pricing.
**Standalone quote**: provide a single quote request in the `quotes` array.
**Combined sale and purchase**: provide two quote requests in the `quotes` array, one Sale and one Purchase. Each is independent, with its own `productId`, applicants, and product details.
**Accounts**: each quote needs an `accounts` array naming at least one `Originator` and at least one `Introducer`. These can be the same account holding both roles. You''re given these account identifiers when you''re onboarded.
**Contacts**: each quote needs a `contacts` array including the requestor (the person placing the quote on the applicant''s behalf). Identify them with `contactId` or `email`. Only one contact with role `Requestor` is allowed per quote.
**Products**: the `product` object must match one of the [Product Schemas](#tag/Product-Schemas) for the product type and property location you''re quoting for.
'
operationId: conveyances-experience-quote-create
x-external-entitlement: external:conveyancesexperience:quote:create
tags:
- Quotes
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateQuoteRequest'
examples:
standalonePurchase:
$ref: '#/components/examples/StandalonePurchaseQuote'
combinedSaleAndPurchase:
$ref: '#/components/examples/CombinedSaleAndPurchase'
responses:
'201':
description: Quote created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CreateQuoteResponse'
examples:
standaloneQuote:
summary: Standalone Quote Response
value:
quotes:
- quoteId: 550e8400-e29b-41d4-a716-446655440000
product:
productId: f7a7438b-fe4e-4361-b00b-d3d709a16d01
propertyLocation: EnglandWales
conveyancers:
- conveyancerId: f7a7438b-fe4e-4361-b00b-d3d709a16d01
name: Key Conveyancing LLP
location: Northampton
logoUrl: https://cdn.optimus.com/logos/key-conveyancing.png
overallRating: 4.3
ratingBreakdown:
feedback: 4
complaintRatio: 4
telephoneTime: 5
completionTime: 4
- conveyancerId: b2c3d4e5-f6a7-8901-bcde-f1234567890a
name: O'Neill Patient Solicitors LLP
location: Stockport
logoUrl: https://cdn.optimus.com/logos/oneill-patient.png
overallRating: 2
ratingBreakdown:
feedback: 2
complaintRatio: 2
telephoneTime: 3
completionTime: 2
combinedQuotes:
summary: Combined Sale and Purchase Response
value:
quotes:
- quoteId: 550e8400-e29b-41d4-a716-446655440001
product:
productId: e5e42a0e-6717-4b45-8cd5-0f3a3b79cf4d
propertyLocation: EnglandWales
conveyancers:
- conveyancerId: f7a7438b-fe4e-4361-b00b-d3d709a16d01
name: Key Conveyancing LLP
location: Northampton
logoUrl: https://cdn.optimus.com/logos/key-conveyancing.png
overallRating: 4.3
ratingBreakdown:
feedback: 4
complaintRatio: 4
telephoneTime: 5
completionTime: 4
fee:
totalIncVat: 1250
breakdown:
legalWork:
- description: Legal Work
excVat: 600
vat: 120
incVat: 720
disbursements:
- description: Search Pack
excVat: 300
vat: 60
incVat: 360
supplements: []
- quoteId: 550e8400-e29b-41d4-a716-446655440002
product:
productId: f7a7438b-fe4e-4361-b00b-d3d709a16d01
propertyLocation: EnglandWales
conveyancers:
- conveyancerId: f7a7438b-fe4e-4361-b00b-d3d709a16d01
name: Key Conveyancing LLP
location: Northampton
logoUrl: https://cdn.optimus.com/logos/key-conveyancing.png
overallRating: 4.3
ratingBreakdown:
feedback: 4
complaintRatio: 4
telephoneTime: 5
completionTime: 4
fee:
totalIncVat: 1982.4
breakdown:
legalWork:
- description: Legal Work
excVat: 755
vat: 151
incVat: 906
disbursements:
- description: Search Pack
excVat: 345
vat: 69
incVat: 414
supplements:
- description: Lender Special Conditions
excVat: 250
vat: 50
incVat: 300
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
get:
summary: List Quotes
description: 'Retrieve your quotes, most recently updated first.
Filter, sort, and page the results with the OData-style query parameters below.
'
operationId: conveyances-experience-quote-list
x-external-entitlement: external:conveyancesexperience:quote:list
tags:
- Quotes
parameters:
- name: $filter
in: query
description: 'OData $filter syntax i.e. $filter=status eq ''Completed'' <br/><br/> Supported $filter values are: ''status'', ''createdDate'', ''updatedDate'', ''productId'''
required: false
schema:
type: string
maxLength: 1000
- name: $orderby
in: query
description: 'OData $orderby syntax i.e. $orderby=updatedDate desc <br/><br/> Supported $orderby values are: ''createdDate'', ''updatedDate'', ''productName'', ''status'''
required: false
schema:
type: string
maxLength: 1000
default: updatedDate desc
- name: $top
in: query
description: The number of items to return
schema:
type: integer
format: int32
minimum: 1
maximum: 999
default: 20
- name: $skip
in: query
description: The number of items to skip
schema:
type: integer
format: int32
minimum: 0
maximum: 9999999
default: 0
- name: $count
in: query
description: Whether or not to return a count of items
schema:
type: boolean
default: false
- name: countOnly
in: query
description: Return only the count of items
schema:
type: boolean
default: false
responses:
'200':
description: List of quotes retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteListResponse'
examples:
quoteList:
$ref: '#/components/examples/QuoteListResponseExample'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}:
get:
summary: Retrieve Quote Details
description: 'Retrieve the full details of one of your quotes: the property, applicants, product details, the available conveyancers, and the pricing breakdown.
'
operationId: conveyances-experience-quote-read
x-external-entitlement: external:conveyancesexperience:quote:read
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
responses:
'200':
description: Quote details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/RetrieveQuoteResponse'
examples:
retrieveQuote:
$ref: '#/components/examples/RetrieveQuoteResponseExample'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/pdf:
get:
summary: Download Quote PDF
description: 'Download a PDF copy of the quote, for example to share with your client.
'
operationId: conveyances-experience-quote-pdf-download
x-external-entitlement: external:conveyancesexperience:quote:pdf:download
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
responses:
'200':
description: Quote PDF retrieved successfully
headers:
Content-Disposition:
schema:
type: string
maxLength: 1000
pattern: ^attachment; filename=".*"$
description: 'Specifies that the response is an attachment, and includes the filename for the PDF.
'
example: attachment; filename="quote.pdf"
traceresponse:
schema:
type: string
pattern: ^[0-9a-fA-F]{2}-[0-9a-fA-F]{32}--[0-9a-fA-F]{2}$
minLength: 39
maxLength: 39
description: 'Trace context providing a unique identifier for an individual request.
'
example: 00-199c8ce55dc743a88661498aa8eb2cfc--00
content:
application/pdf:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/instruct:
post:
summary: Instruct Quote
description: 'Instruct a quote to turn it into a live case. Supply the `conveyancerId` of the conveyancer you''re choosing in the request body: it must be one of the conveyancers returned for this quote (see `GET /quotes/{quoteId}` or the create-quote response). Instructing creates the case and makes the details available to that conveyancer.
'
operationId: conveyances-experience-quote-instruct
x-external-entitlement: external:conveyancesexperience:quote:instruct
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InstructQuoteRequest'
responses:
'201':
description: Quote instructed successfully, case created
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/property-address:
put:
summary: Update Property Address
description: 'Update the property address on a quote. The values you provide replace the current address.
'
operationId: conveyances-experience-quote-address-update
x-external-entitlement: external:conveyancesexperience:quote:propertyaddress:update
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyAddress'
examples:
updatePropertyAddress:
$ref: '#/components/examples/UpdateQuotePropertyAddressExample'
responses:
'200':
description: Quote property address updated successfully
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/product-details:
put:
summary: Update Quote Product Details
description: 'Update the product details on a quote. The values you provide replace the current product details.
The request body must match the `productDetails` object for the quote''s product, as defined in [Product Schemas](#tag/Product-Schemas). You can''t change the quote''s `productId` or `propertyLocation` here.
'
operationId: conveyances-experience-quote-product-details-update
x-external-entitlement: external:conveyancesexperience:quote:productdetails:update
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteProductDetails'
examples:
updateProductDetails:
$ref: '#/components/examples/UpdateQuoteProductDetailsExample'
responses:
'200':
description: Quote product details updated successfully
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/persons:
post:
summary: Add Person to Quote
description: 'Add a person (applicant) to a quote. A quote can have up to 8 applicants.
'
operationId: conveyances-experience-quote-person-create
x-external-entitlement: external:conveyancesexperience:quote:person:create
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Person'
examples:
addPerson:
$ref: '#/components/examples/AddQuotePersonExample'
responses:
'201':
description: Person added to quote successfully
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
/quotes/{quoteId}/persons/{personReference}:
put:
summary: Update Person on Quote
description: 'Update a person on a quote. The values you provide replace that person''s details.
'
operationId: conveyances-experience-quote-person-update
x-external-entitlement: external:conveyancesexperience:quote:person:update
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
- name: personReference
in: path
required: true
description: Unique identifier for the person on the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: bf13cb52-6676-4f3d-a27a-b6cafaf52f19
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateQuotePersonRequest'
examples:
updatePerson:
$ref: '#/components/examples/UpdateQuotePersonExample'
responses:
'200':
description: Person updated successfully
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
delete:
summary: Remove Person from Quote
description: 'Remove a person from a quote.
'
operationId: conveyances-experience-quote-person-delete
x-external-entitlement: external:conveyancesexperience:quote:person:delete
tags:
- Quotes
parameters:
- name: quoteId
in: path
required: true
description: Unique identifier for the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
- name: personReference
in: path
required: true
description: Unique identifier for the person on the quote
schema:
$ref: '#/components/schemas/LgsUuid'
example: bf13cb52-6676-4f3d-a27a-b6cafaf52f19
responses:
'200':
description: Person removed from quote successfully
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'429':
$ref: '#/components/responses/429TooManyRequests'
'500':
$ref: '#/components/responses/500InternalServerError'
components:
schemas:
QuoteSummary:
type: object
additionalProperties: false
required:
- quoteId
- propertyAddress
- product
- totalFee
description: 'Summary information for a quote. Contains essential metadata for listing and identification purposes.
'
properties:
quoteId:
description: Unique quote identifier
allOf:
- $ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
propertyAddress:
type: object
additionalProperties: false
description: Property address summary
properties:
thoroughfare:
type: string
maxLength: 60
pattern: ^.*$
description: Street name or thoroughfare
example: High Street
postTown:
type: string
maxLength: 60
pattern: ^.*$
description: Post town
example: London
postcode:
type: string
maxLength: 10
pattern: ^.*$
description: Postcode
example: SW1A 1AA
product:
$ref: '#/components/schemas/ProductSummary'
selectedConveyancer:
$ref: '#/components/schemas/SelectedConveyancerSummary'
totalFee:
type: number
description: Total fee including VAT in GBP
example: 1982.4
createdDate:
type: string
format: date-time
description: When the quote was created (ISO 8601 format)
example: '2024-01-15T10:30:00Z'
ConveyancerBasic:
type: object
additionalProperties: false
required:
- conveyancerId
- name
- overallRating
properties:
conveyancerId:
description: Conveyancer identifier
allOf:
- $ref: '#/components/schemas/LgsUuid'
example: f7a7438b-fe4e-4361-b00b-d3d709a16d01
name:
type: string
maxLength: 100
description: Conveyancer name
example: Key Conveyancing LLP
location:
type: string
description: Conveyancer location
example: Northampton
logoUrl:
type: string
format: uri
description: URL to conveyancer logo
example: https://cdn.optimus.com/logos/key-conveyancing.png
overallRating:
type: number
format: float
minimum: 0
maximum: 5
description: Overall rating (1-5 scale)
example: 4.3
RetrieveQuoteResponse:
type: object
additionalProperties: false
required:
- quoteId
- accounts
- propertyAddress
- product
- persons
- conveyancers
- fee
description: 'Complete quote details combining the original request data with the quote response data.
Contains all property information, applicant details, product configuration, and pricing breakdown.
'
properties:
quoteId:
description: Unique quote identifier
allOf:
- $ref: '#/components/schemas/LgsUuid'
example: 550e8400-e29b-41d4-a716-446655440000
additionalReferences:
type: array
description: External references provided by introducers (if any)
items:
$ref: '#/components/schemas/AdditionalReference'
propertyAddress:
$ref: '#/components/schemas/PropertyAddress'
product:
$ref: '#/components/schemas/Products'
persons:
type: array
minItems: 1
maxItems: 8
description: Array of persons involved in the transaction (maximum 8 applicants). Each person includes a `reference`.
items:
$ref: '#/components/schemas/Person'
selectedConveyancer:
$ref: '#/components/schemas/SelectedConveyancerSummary'
conveyancers:
type: array
description: All available conveyancers for this quote
items:
$ref: '#/components/schemas/Conveyancer'
fee:
$ref: '#/components/schemas/Fee'
accounts:
type: array
minItems: 1
maxItems: 10
description: Accounts involved in this quote
items:
$ref: '#/components/schemas/Account'
contacts:
type: array
maxItems: 10
description: Contacts involved in this quote (if any)
items:
$ref: '#/components/schemas/Contact'
Products:
type: object
additionalProperties: false
required:
- productId
- propertyLocation
- productDetails
description: 'Product information for a quote or case. The `productDetails` object must match the schema
for the selected product type and property location. See [Product Schemas](#tag/Product-Schemas).
'
properties:
productId:
description: Product ID — see [Product Schemas](#tag/Product-Schemas) for valid values per product type
allOf:
- $ref: '#/components/schemas/LgsUuid'
propertyLocation:
type: string
enum:
- EnglandWales
- Scotland
description: Property location
productDetails:
type: object
description: 'Product-specific details. Must match the `productDetails` object structure
for the selected product type and property location as defined in [Product Schemas](#tag/Product-Schemas).
'
FeeItem:
type: object
additionalProperties: false
required:
- description
- excVat
- vat
- incVat
properties:
description:
type: string
description: Description of the fee
# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/landmark-information/refs/heads/main/openapi/landmark-information-quotes-api-openapi.yml