Download OpenAPI specification:
The Document Vault API lets you create a secure, shareable container of documents — a Document Vault — and manage its contents programmatically. It lets you exchange the right paperwork with the other side of the transaction without rekeying or trading email attachments.
Used with Contract Pack Vault for conveyancing firms (see Contract Pack Vault).
Use this API from your case management system to assemble a contract pack, then open Contract Pack Vault to check it and share it with the buyer's conveyancer. The API builds and maintains the vault; reviewing and sharing happen in the web app.
id; use it in every follow-up call and to open the vault in the web app. Optionally set a reference (your case reference), which must be unique within your account.status is Pending while that runs, then Available or Quarantined if it failed the virus scan.Get Document Vault or Get Activities for the audit history.REST API over HTTPS with JSON responses; file uploads use multipart/form-data.
UAT (building and testing): https://uat-api.landmarkcloudservices.com/document-vaults
Auth: https://lmkmaster-uat.eu.auth0.com/oauth/token
Production (live integration only; vaults are real and may incur a cost): https://api.landmarkcloudservices.com/document-vaults
Auth: https://lmkmaster.eu.auth0.com/oauth/token
OAuth 2.0 client credentials. Each conveyancing firm is onboarded individually with Landmark and receives its own client ID, secret, and Account-Id (sent as a header on every request). Credentials are issued separately for UAT (building and testing; not charged) and Production (live integration only). If you integrate via a case management system, that system typically holds the firm's credentials on its behalf.
Audience is fixed per environment:
https://uat-api.landmarkcloudservices.comhttps://api.landmarkcloudservices.com1. Get an access token by POSTing to the auth endpoint for your environment:
{
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"audience": "https://uat-api.landmarkcloudservices.com",
"grant_type": "client_credentials"
}
Use the Production audience when calling the Production auth endpoint.
The response contains an access_token (a JWT) and an expires_in value. Cache and reuse the token until it is close to expiry.
2. Send on every API request:
Authorization: Bearer <access_token>Account-Id: <your account id>A 403 means your credentials are not entitled to that operation; contact support.
One document per upload; up to 60 per vault; PDF, DOC, DOCX, JPEG, PNG; 25 MB per file. API rate limits: up to 1,000 calls per minute per caller.
Standard HTTP status codes apply (400 validation, 401/403 authentication, 404 not found, 409 conflict, 413 too large, 429 rate limited, 5xx server error). Error bodies use problem+json. Include the lgsTraceResponse header value when contacting support.
Support: support@ochresoft.com | +44 (0)3300 366 700
Contract Pack Vault is a conveyancing product on LandmarkConnect. You assemble a contract pack from your CMS and share it securely with the buyer's conveyancer. The API handles the building; the web app is where you review the pack and share it.
As each document is added, it is automatically analysed so you can spot problems before the pack goes out. The checks include:
The results appear as a checklist in the web app for you to review and act on. They are not currently returned by the API.
In the web app you can review the checklist and analysis, preview, download or remove documents, update vault details, and share the vault with the buyer's conveyancer. The buyer's conveyancer receives secure access through a link once they have verified their email address.
Link straight to a vault from your CMS using the vault id from Create Document Vault, so your team does not have to search for it in the web app. Open the relevant URL in a browser, replacing {documentVaultId}:
https://uat-connect.landmark.co.uk/case/{documentVaultId}https://connect.landmark.co.uk/case/{documentVaultId}filename property to Add Document endpoint body to show file name restrictionsminLength values to various schemas for clarityCreates a new Document Vault and returns its id. The more detail you provide upfront (property details, tenure, registered status, selling capacity, and the buyer's conveyancer's organisation and recipients), the more the vault will reflect the case from the start. Everything can be added or updated later.
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
| reference | string (documentVaultReference) [ 1 .. 50 ] characters ^[\w\-\/\.\|]+$ Your reference that uniquely identifies the Document Vault |
required | object (propertyDetails) The property associated with the vault |
object (recipientOrganisation) The organisation acting for vault recipients |
{- "reference": "UT/PL34JT/04-2025",
- "property": {
- "address": {
- "uprn": 9223372036854775000,
- "udprn": 99999999,
- "departmentName": "Customer Service Department",
- "organisationName": "JW Simpsons Ltd",
- "subBuildingName": "The Old Mill",
- "buildingName": "The Annexe",
- "buildingNumber": "7",
- "poBoxNumber": "5422",
- "dependentThoroughfare": "Richmond Terrace",
- "thoroughfare": "Main Street",
- "doubleDependentLocality": "Hook",
- "dependentLocality": "Warsash",
- "postTown": "Southampton",
- "country": "England",
- "postcode": "SO99 9ZZ",
- "blpuEasting": 296701,
- "blpuNorthing": 92288
}, - "tenure": "Freehold",
- "registered": true,
- "sellingCapacity": "LegalAndBeneficialOwner"
}, - "recipientOrganisation": {
- "name": "Landmark Example Conveyancing",
- "reference": "UT/PL34JT/04-2025",
- "recipients": [
- {
- "type": "Individual",
- "title": "Mr",
- "firstName": "John",
- "middleName": "Michael",
- "lastName": "Smith",
- "email": "user@example.com"
}
]
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}Returns a vault's current details, including each document and its status.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "reference": "UT/PL34JT/04-2025",
- "createdDate": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "updatedDate": "2019-08-24T14:15:22Z",
- "property": {
- "address": {
- "uprn": 9223372036854775000,
- "udprn": 99999999,
- "departmentName": "Customer Service Department",
- "organisationName": "JW Simpsons Ltd",
- "subBuildingName": "The Old Mill",
- "buildingName": "The Annexe",
- "buildingNumber": "7",
- "poBoxNumber": "5422",
- "dependentThoroughfare": "Richmond Terrace",
- "thoroughfare": "Main Street",
- "doubleDependentLocality": "Hook",
- "dependentLocality": "Warsash",
- "postTown": "Southampton",
- "country": "England",
- "postcode": "SO99 9ZZ",
- "blpuEasting": 296701,
- "blpuNorthing": 92288
}, - "tenure": "Freehold",
- "registered": true,
- "sellingCapacity": "LegalAndBeneficialOwner"
}, - "recipientOrganisation": {
- "name": "Landmark Example Conveyancing",
- "reference": "UT/PL34JT/04-2025",
- "recipients": [
- {
- "type": "Individual",
- "title": "Mr",
- "firstName": "John",
- "middleName": "Michael",
- "lastName": "Smith",
- "email": "user@example.com",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}, - "documents": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "Available",
- "createdDate": "2019-08-24T14:15:22Z"
}
]
}Updates your reference for the vault.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
| reference required | string (documentVaultReference) [ 1 .. 50 ] characters ^[\w\-\/\.\|]+$ Your reference that uniquely identifies the Document Vault |
{- "reference": "UT/PL34JT/04-2025"
}{- "status": "400",
- "code": "40000",
- "title": "Invalid content type supplied"
}Updates fields associated with the Property.
At least one top-level field (address, tenure, registered or sellingCapacity) must be supplied.
Omitted top-level fields are left unchanged.
Omitted nested fields (the fields within address) will have their existing values removed.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
object (lgsAddressPAFPlus) Either | |
| tenure | string (tenure) Enum: "Freehold" "Leasehold" "Commonhold" |
| registered | boolean (registered) Whether the property is registered or not |
| sellingCapacity | string (sellingCapacity) Enum: "LegalAndBeneficialOwner" "Attorney" "PersonalRepresentative" "Trustee" |
{- "address": {
- "uprn": 9223372036854775000,
- "udprn": 99999999,
- "departmentName": "Customer Service Department",
- "organisationName": "JW Simpsons Ltd",
- "subBuildingName": "The Old Mill",
- "buildingName": "The Annexe",
- "buildingNumber": "7",
- "poBoxNumber": "5422",
- "dependentThoroughfare": "Richmond Terrace",
- "thoroughfare": "Main Street",
- "doubleDependentLocality": "Hook",
- "dependentLocality": "Warsash",
- "postTown": "Southampton",
- "country": "England",
- "postcode": "SO99 9ZZ",
- "blpuEasting": 296701,
- "blpuNorthing": 92288
}, - "tenure": "Freehold",
- "registered": true,
- "sellingCapacity": "LegalAndBeneficialOwner"
}{- "status": "400",
- "code": "40000",
- "title": "Invalid content type supplied"
}Updates fields associated with the Recipient Organisation. At least one of name or reference must be supplied. Omitted fields are left unchanged.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
| name | string (organisationName) [ 1 .. 128 ] characters Organisation name |
| reference | string (buyerConveyancerReference) [ 1 .. 40 ] characters ^[\w\-\/\.\|]+$ The buyer's conveyancer's reference that uniquely identifies the Document Vault |
{- "name": "Landmark Example Conveyancing",
- "reference": "UT/PL34JT/04-2025"
}{- "status": "400",
- "code": "40000",
- "title": "Invalid content type supplied"
}Adds a person or team to the buyer's-side recipient organisation. This sets up who can receive the vault; sharing itself is done from the web app.
A maximum of 4 recipients can be added to a Document Vault.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
| type required | string Value: "Individual" |
| title | string (title) <= 20 characters ^.{0}$|^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø... |
| firstName required | string (firstName) <= 40 characters ^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž\u201... |
| middleName | string (middleName) <= 40 characters ^.{0}$|^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø... |
| lastName required | string (lastName) <= 40 characters ^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž\u201... |
| email required | string <email> (email) <= 320 characters |
{- "type": "Individual",
- "title": "Mr",
- "firstName": "John",
- "middleName": "Michael",
- "lastName": "Smith",
- "email": "user@example.com"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}Removes a recipient from the vault.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| recipientId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Recipient ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
{- "status": "400",
- "code": "40000",
- "title": "Invalid content type supplied"
}Adds one document to the vault. Supported file types are PDF, DOC, DOCX, JPEG and PNG; maximum 25 MB per file and 60 documents per vault. Returns a document id.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
| file required | string <binary> <= 26214400 characters File content transferred as binary. Content-Type and filename should be sent within this sub-part of the multi-part body. |
| filename | string [ 5 .. 250 ] characters ^(?!.*\.\..*)[^\:\/\*""\<\>\|]+?\.[a-zA-Z\d]{... This property should be sent as part of the file sub-part of the multi-part body; this is present only to show the filename restrictions |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}Permanently removes a document from the vault.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| documentId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
{- "status": "400",
- "code": "40000",
- "title": "Invalid content type supplied"
}Returns all audit events for a vault, the same history shown in the web app activity log.
| documentVaultId required | string <uuid> (lgsUuid) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... The Document Vault ID |
| Account-Id required | string <uuid> (accountId) = 36 characters ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]... Your Landmark account ID - this will be provided to you during onboarding |
{- "activities": [
- {
- "action": "Case created",
- "createdBy": "John Michael Smith",
- "createdDate": "2026-06-17T12:10:14.222813Z"
}
]
}