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/ppl-london-market-document-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: 3.2.0
info:
title: Document API
description: 'This API collection provides the capability of supporting the management of document files and document information in the platform. This includes the Market Reform Contract (MRC) as well as supporting documents that can be added at various levels of hierarchy in the Placement structure.
Enables the creation and management of Document data relating to the hierarchical structure of a Placement. This includes the management of the Market Reform Contract (MRC) documents and any supporting documentation that is used as part of a Submission to an Underwriter for insurance placement purposes.'
version: '1'
servers:
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/documents
description: Joint Integration testing (JIT2) environment
tags:
- name: document
paths:
/documents:
get:
tags:
- document
description: Returns a list of all Document records associated within a specified Placement structure, based upon various query parameters. Pagination functionality is supported on this operation.
operationId: Document_GetAll_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A list of system-generated unique identifiers for each Broker Team, with a format and structure defined by the technology used.
required: true
schema:
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
type: array
items:
type: string
- name: placementId
in: query
description: 'A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.
Search using multiple exact match method, e.g. placementId=placement1,placement2,placement3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: documentId
in: query
description: 'A system-generated identifier for each Document record, with a format and structure defined by the technology used. This identifier is used to group multiple versions of Document records together.
Search using multiple exact match method, e.g. documentId=id1,id2,id3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: createdDate
in: query
description: 'The date timestamp when the entity was created.
Search using range method, e.g. createdDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
- name: modifiedDate
in: query
description: 'The date timestamp when the entity was modified.
Search using range method, e.g. modifiedDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
- name: uploadUserEmail
in: query
description: 'The User email of the User that uploaded the Document.
Search using multiple exact match method, e.g. uploadUserEmail=email1,email2,email3.'
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
- name: uploadUserFirstName
in: query
description: 'The first name of the User that uploaded the Document.
Search using contains method, e.g. uploadUserFirstName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,40}\)$
- name: uploadUserLastName
in: query
description: 'The last name of the User that uploaded the Document.
Search using contains method, e.g. uploadUserLastName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,40}\)$
- name: teamName
in: query
description: 'The name of the Broker Team, as defined by the broker organisation.
Search using contains method, e.g. teamName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: fileName
in: query
description: 'The file name of the Document, including its file extension.
Search using contains method, e.g. fileName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,40}\)$
- name: description
in: query
description: 'A description about the Document and / or its contents.
Search using contains method, e.g. description=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: classType
in: query
description: 'A code that describes the class of Document. Examples include Digitised MRC, Non-digitised MRC or Supporting Document.
Search using multiple exact match method, e.g. classType=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: type
in: query
description: 'A code that represents the type of Document.
Search using multiple exact match method, e.g. type=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: contextType
in: query
description: 'Identifies where within a Placement structure this Document is held.
Search using multiple exact match method, e.g. contextType=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: contextId
in: query
description: 'The unique identifier given within the hierarchy of the Placement structure where the Document is held.
Search using multiple exact match method, e.g. contextId=id1,id2,id3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: sort
in: query
description: 'Sorting field and order (unique field only).
Use + before the field name for ascending order, use - for descending order.'
schema:
type: string
pattern: ^[+-]?\w+$
- name: pageNumber
in: query
description: Number of the page to be retrieved.
schema:
type: integer
format: int32
minimum: 1
example: 1
- name: pageSize
in: query
description: Size of the page to be retrieved.
schema:
type: integer
format: int32
minimum: 1
maximum: 200
example: 200
responses:
'200':
description: List of Document records
content:
application/json:
schema:
$ref: '#/components/schemas/response_documents_getall'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
post:
tags:
- document
description: Creates a Document record, representing either the Market Reform Contract (MRC) or another type of supporting document. The request contains the document attributes as well as the electronic file which will be submitted into the platform's content management system. This end point will also be used for when an electronic file is to be replaced, i.e. versioned.
operationId: Document_Post_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
requestBody:
description: Document structure for creates.
content:
application/json:
schema:
$ref: '#/components/schemas/document_post_FileString'
required: true
responses:
'200':
description: Document record
content:
application/json:
schema:
$ref: '#/components/schemas/document_post_response'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
x-codegen-request-body-name: document
/documents/versions/{documentVersionId}:
get:
tags:
- document
description: Returns a single Document record. This record will contain the document attributes of the document, but does not provide the electronic file.
operationId: Document_GetById_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
responses:
'200':
description: Document record
content:
application/json:
schema:
$ref: '#/components/schemas/document_get'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
put:
tags:
- document
description: Updates the data attributes of a Document record. This operation will not replace the electronic file.
operationId: Document_Put_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: X-Last-Modified
in: header
description: The date timestamp to be used to validate an update operation.
required: true
schema:
type: string
format: date-time
example: '2014-12-31T23:59:59.938Z'
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
requestBody:
description: Document structure for updates.
content:
application/json:
schema:
$ref: '#/components/schemas/document_put'
required: true
responses:
'200':
description: Document record
content:
application/json:
schema:
$ref: '#/components/schemas/document_get'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
x-codegen-request-body-name: document
delete:
tags:
- document
description: Deletes a Document record, where the record is in a state that enables its deletion.
operationId: Document_Delete_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
responses:
'200':
description: Document outpur structure for delete
content:
application/json:
schema:
$ref: '#/components/schemas/document_delete_response'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/documents/versions/{documentVersionId}/content:
get:
tags:
- document
description: Returns the electronic file that is represented by the Document record. This is the subsequent end point that is called following an asynchronous response that the electronic file is ready to be downloaded.
operationId: Document_GetContent_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: notificationId
in: query
description: 'A system-generated unique identifier for a Notification, with a format and structure defined by the technology used.
Search using (mandatory) single exact match method, e.g. notificationId=guid.'
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
responses:
'200':
description: The binary data that represents the electronic file which the Document refers to.
content:
application/octet-stream:
schema:
type: string
description: The binary data that represents the electronic file which the Document refers to.
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/documents/versions/{documentVersionId}/download:
post:
tags:
- document
description: Initiates the asynchronous operation to download the electronic file of this document.
operationId: Document_PostDownload_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
requestBody:
description: Dummy request body for LIMOSS consumption.
content:
application/json:
schema:
$ref: '#/components/schemas/document_post_download'
responses:
'200':
description: 'The Notification information relating to the Document. '
content:
application/json:
schema:
$ref: '#/components/schemas/notification'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/documents/versions/{documentVersionId}/security/content:
get:
tags:
- document
description: Returns the electronic file that represents the Market Reform Contract with its underwriting security page(s) and settlement information. This is the subsequent end point that is called following an asynchronous response that the electronic file is ready to be downloaded.
operationId: Document_GetSecurityContent_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: notificationId
in: query
description: 'A system-generated unique identifier for a Notification, with a format and structure defined by the technology used.
Search using (mandatory) single exact match method, e.g. notificationId=guid.'
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
responses:
'200':
description: The binary data that represents the electronic file which the Document refers to.
content:
application/octet-stream:
schema:
type: string
description: The binary data that represents the electronic file which the Document refers to.
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/documents/versions/{documentVersionId}/security/download:
post:
tags:
- document
description: Initiates the asynchronous operation to download the Market Reform Contract with its underwriting security page(s) and settlement information.
operationId: Document_PostSecurityDownload_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: documentVersionId
in: path
description: A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
requestBody:
description: Document structure for post security download.
content:
application/json:
schema:
$ref: '#/components/schemas/document_post_securitydownload'
required: true
responses:
'200':
description: 'The Notification information relating to the Document. '
content:
application/json:
schema:
$ref: '#/components/schemas/document_post_securitydownload_output'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
x-codegen-request-body-name: securityDetails
components:
schemas:
metadata_user:
required:
- user_email
type: object
properties:
user_email:
type: string
description: The email address of the User.
default: ''
first_name:
type: string
description: The first name of the User.
default: ''
last_name:
type: string
description: The last name of the User.
default: ''
description: The User information of the Metadata User.
document_get:
required:
- broker_team
- class_type
- context
- description
- document_id
- document_version_id
- filename
- is_shared
- major_version
- metadata
-
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppl-london-market/refs/heads/main/openapi/ppl-london-market-document-api-openapi.yml