Landmark Information Group Documents API

Add and remove the files held in a vault.

Operations 4

POST /{documentVaultId}/documents Add Document #
DELETE /{documentVaultId}/documents/{documentId} Delete Document #
GET /documents List case documents #
GET /documents/{id}/download Download document #

Documentation

Specifications

Other Resources

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/landmark-information-documents-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 Specification

landmark-information-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Landmark Information Documents API
  contact:
    name: API Support
    email: support@ochresoft.com
    x-phone-number: +44 (0)3300 366 700
  version: '1.0'
  description: 'Operations tagged Documents across 2 of this provider''s published API definitions: landmark-information-document-vault-api-openapi.yml, landmark-information-intelliworks-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.landmarkcloudservices.com/
  description: Production API
- url: https://uat-api.landmarkcloudservices.com/
  description: UAT API
security:
- bearerAuth: []
tags:
- name: Documents
  description: Add and remove the files held in a vault.
paths:
  /{documentVaultId}/documents:
    post:
      tags:
      - Documents
      summary: Add Document
      description: 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`.
      operationId: document-vault-documents-create
      x-external-entitlement: external:document-vault:documents:create
      parameters:
      - name: Account-Id
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/accountId'
      - name: documentVaultId
        in: path
        description: The Document Vault ID
        required: true
        schema:
          $ref: '#/components/schemas/lgsUuid'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              description: Each property will be a subpart of the multipart body.
              type: object
              additionalProperties: false
              required:
              - file
              properties:
                file:
                  description: File content transferred as binary. Content-Type and filename should be sent within this sub-part of the multi-part body.
                  type: string
                  format: binary
                  maxLength: 26214400
                filename:
                  description: 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
                  type: string
                  minLength: 5
                  maxLength: 250
                  pattern: ^(?!.*\.\..*)[^\:\/\*""\<\>\|]+?\.[a-zA-Z\d]{1,10}$
            encoding:
              file:
                contentType: application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, image/jpeg, image/png
      responses:
        '200':
          description: 200 OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addDocumentToDocumentVaultResponse'
          headers:
            lgsTraceResponse:
              $ref: '#/components/headers/lgsTraceResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '413':
          $ref: '#/components/responses/413PayloadTooLarge'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
    servers:
    - url: https://api.landmarkcloudservices.com/
      description: Production API
    - url: https://uat-api.landmarkcloudservices.com/
      description: UAT API
  /{documentVaultId}/documents/{documentId}:
    delete:
      tags:
      - Documents
      summary: Delete Document
      description: Permanently removes a document from the vault.
      operationId: document-vault-documents-delete
      x-external-entitlement: external:document-vault:documents:delete
      parameters:
      - name: Account-Id
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/accountId'
      - name: documentVaultId
        in: path
        description: The Document Vault ID
        required: true
        schema:
          $ref: '#/components/schemas/lgsUuid'
      - name: documentId
        in: path
        description: The Document ID
        required: true
        schema:
          $ref: '#/components/schemas/lgsUuid'
      responses:
        '200':
          description: 200 OK
          headers:
            lgsTraceResponse:
              $ref: '#/components/headers/lgsTraceResponse'
        '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'
    servers:
    - url: https://api.landmarkcloudservices.com/
      description: Production API
    - url: https://uat-api.landmarkcloudservices.com/
      description: UAT API
  /documents:
    get:
      summary: List case documents
      description: 'Returns the list of completed documents held against a case in Intelliworks for the specified branch.

        Supply at least one of `caseId` (Intelliworks case reference, e.g. `EXP-000762`) and/or `externalCaseId` (e.g. `AAR801/1`).

        Both are forwarded to Intelliworks when provided.

        Each document in the response can be downloaded using `GET /documents/{id}/download`.

        '
      operationId: getCompletedDocuments
      tags:
      - Documents
      parameters:
      - name: branchId
        in: query
        required: true
        description: Branch identifier (UUID) used to resolve Intelliworks company and site identifiers.
        schema:
          $ref: '#/components/schemas/lgsUuid'
      - name: caseId
        in: query
        required: false
        description: Intelliworks case reference (e.g. `EXP-000762`).
        schema:
          type: string
          pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$
          maxLength: 50
      - name: externalCaseId
        in: query
        required: false
        description: External case reference (e.g. `AAR801/1`).
        schema:
          type: string
          pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$
          maxLength: 50
      - name: workflowId
        in: query
        required: false
        description: Intelliworks workflow identifier.
        schema:
          type: integer
          format: int32
          minimum: 1
      responses:
        '200':
          description: Completed documents retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/completedDocumentsResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound_2'
        '406':
          $ref: '#/components/responses/500InternalServerError'
        '415':
          $ref: '#/components/responses/500InternalServerError'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
    servers:
    - url: https://api.landmarkcloudservices.com/
      description: Production API
    - url: https://uat-api.landmarkcloudservices.com/
      description: UAT API
  /documents/{id}/download:
    get:
      summary: Download document
      description: Downloads a document by document ID (as returned in the List case documents response). Auth0Id is extracted from the authenticated user context and forwarded to Intelliworks Web API.
      operationId: downloadDocument
      tags:
      - Documents
      parameters:
      - name: id
        in: path
        required: true
        description: Document ID.
        schema:
          $ref: '#/components/schemas/lgsUuid'
      responses:
        '200':
          description: Document downloaded successfully
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad request. Document ID is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: User does not have access to the requested document.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Document not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    servers:
    - url: https://api.landmarkcloudservices.com/
      description: Production API
    - url: https://uat-api.landmarkcloudservices.com/
      description: UAT API
components:
  responses:
    400BadRequest:
      description: Bad Request
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Invalid content type supplied:
              value:
                status: '400'
                code: '40000'
                title: Invalid content type supplied
            Validation error:
              value:
                status: '400'
                code: '40001'
                title: Validation error
            Invalid traceparent http header:
              value:
                status: '400'
                code: '40002'
                title: Invalid trace header
            No matching data found:
              value:
                status: '400'
                code: '40003'
                title: No matching data found
            Invalid header:
              value:
                status: '400'
                code: '40004'
                title: Invalid header
            Third party error:
              value:
                status: '400'
                code: '40005'
                title: Third party error
    500InternalServerError:
      description: Internal Server Error
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Resource not found:
              value:
                status: '500'
                code: '50000'
                title: Internal server error
                messages:
                - message: Sorry, something has gone wrong whilst processing your request. An error has been logged and our support team will investigate this shortly. Please try again later and if the issue persists, please contact your Account Manager referencing the value 00-199c8ce55dc743a88661498aa8eb2cfc--00.
    404NotFound:
      description: Not Found
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Entity not found:
              value:
                status: '404'
                code: '40400'
                title: Entity not found
    401Unauthorized:
      description: Unauthorized
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Invalid identity:
              value:
                status: '401'
                code: '40100'
                title: Invalid identity
    413PayloadTooLarge:
      description: Payload Too Large
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
    429TooManyRequests:
      description: Too Many Requests
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Rate Limit Exceeded:
              value:
                status: '429'
                code: '42900'
                title: Rate limit exceeded
    403Forbidden:
      description: Forbidden
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Invalid Entitlement:
              value:
                status: '403'
                code: '40300'
                title: Invalid Entitlement
            No Entitlement:
              value:
                status: '403'
                code: '40301'
                title: No Entitlement
            No permission to entity:
              value:
                status: '403'
                code: '40302'
                title: No permission to entity
            User not registered:
              value:
                status: '403'
                code: '40303'
                title: User not registered
            Usage limit reached:
              value:
                status: '403'
                code: '40304'
                title: Usage limit reached
            Email account not verified:
              value:
                status: '403'
                code: '40305'
                title: Email account not verified
            Token expiry too long:
              value:
                status: '403'
                code: '40306'
                title: Token expiry too long
    404NotFound_2:
      description: Not Found
      headers:
        traceresponse:
          $ref: '#/components/headers/lgsTraceResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/lgsErrorResponse'
          examples:
            Entity not found:
              value:
                status: '404'
                code: '40401'
                title: Entity not found
  schemas:
    accountId:
      description: Your Landmark account ID - this will be provided to you during onboarding
      allOf:
      - $ref: '#/components/schemas/lgsUuid'
    lgsUuid:
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$
    addDocumentToDocumentVaultResponse:
      type: object
      additionalProperties: false
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/lgsUuid'
    lgsErrorResponse:
      type: object
      additionalProperties: false
      required:
      - status
      - code
      - title
      properties:
        status:
          type: string
          minLength: 3
          maxLength: 3
          pattern: ^[0-9]{3}$
        code:
          type: string
          minLength: 5
          maxLength: 5
          pattern: ^[0-9]{5}$
        title:
          type: string
          minLength: 1
          maxLength: 100
        messages:
          type: array
          maxItems: 100
          items:
            type: object
            additionalProperties: false
            required:
            - message
            properties:
              property:
                type: string
                minLength: 1
                maxLength: 1000
              message:
                type: string
                minLength: 1
                maxLength: 1000
    Error:
      required:
      - code
      - message
      additionalProperties: false
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
          pattern: ^.*$
    completedDocumentItem:
      type: object
      additionalProperties: false
      title: Completed document
      description: A single completed document held against a case.
      properties:
        id:
          type: string
          format: uuid
          description: Document ID. Use this value with `GET /documents/{id}/download` to download the document.
        description:
          type: string
          maxLength: 255
          description: Document description.
        fileName:
          type: string
          maxLength: 255
          description: Resolved document file name.
        extension:
          type: string
          maxLength: 25
          description: File extension.
        sizeBytes:
          type: integer
          format: int64
          minimum: 0
          description: Document size in bytes.
        externalType:
          type: string
          maxLength: 50
          description: Document classification (e.g. CaseDocument, CaseImport).
        createdAt:
          type: string
          format: date-time
          description: Creation timestamp (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Last updated timestamp (UTC).
    completedDocumentsResponse:
      type: object
      additionalProperties: false
      title: Completed documents
      description: Read-only list of completed documents returned by Get Completed Documents.
      properties:
        caseId:
          type: string
          maxLength: 50
          pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$
          description: Intelliworks case reference.
        externalCaseId:
          type: string
          maxLength: 50
          pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$
          description: External case reference from the originating system.
        workflowId:
          type: integer
          format: int32
          minimum: 0
          maximum: 99999
          description: Intelliworks workflow identifier.
        documents:
          type: array
          description: Completed documents held against the case.
          items:
            $ref: '#/components/schemas/completedDocumentItem'
  headers:
    lgsTraceResponse:
      description: Trace context providing an unique identifier for an individual requests
      schema:
        type: string
        minLength: 39
        maxLength: 39
        pattern: ^[0-9a-fA-F]{2}-[0-9a-fA-F]{32}--[0-9a-fA-F]{2}$
      examples:
        Example traceresponse:
          value: 00-199c8ce55dc743a88661498aa8eb2cfc--00
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-refined-from:
- landmark-information-document-vault-api-openapi.yml
- landmark-information-intelliworks-api-openapi.yml
x-tagGroups:
- name: Conveyancing API
  tags:
  - Quotes
  - Cases
  - Product Schemas