LSEG World-Check One Case API
Create, screen, update, archive, assign, link, and search screening cases; review and resolve screening results; enable ongoing screening and retrieve ongoing screening updates for KYC and third-party due diligence.
Create, screen, update, archive, assign, link, and search screening cases; review and resolve screening results; enable ongoing screening and retrieve ongoing screening updates for KYC and third-party due diligence.
swagger: '2.0'
info:
title: London Stock Exchange Group LSEG World-Check One Api-Info Case API
description: 'The World-Check One API enables developers to integrate the next generation of LSEG screening capabilities into existing workflows and internal systems (such as CRMs) in order to help streamline the processes for on-boarding, KYC and third party due diligence.
The API provides, among other features:
- The ability to screen entity names, with or without secondary fields such as date of birth for individuals. These names are called “cases” within the World-Check One system.
- The ability to retrieve results of the screening process from the World-Check database
- The ability to flag cases for Ongoing Screening, and retrieve the World-Check results from the Ongoing Screening process.
- The ability to submit request for reports.
- The ability to fetch the status of the report requests and download the completed reports.
> © 2018 - 2023 LSEG. All rights reserved. Republication or redistribution of LSEG content, including by framing or similar means, is prohibited without the prior written consent of LSEG. ''LSEG'' and the LSEG logo are registered trademarks and trademarks of LSEG and its affiliated companies.
'
version: 2.61.0
termsOfService: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
contact:
name: LSEG World-Check One API Q&A
url: https://community.developers.refinitiv.com/index.html
email: c3r.api1@lseg.com
license:
name: Commercial
url: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
host: api-worldcheck.refinitiv.com
basePath: /v2
schemes:
- https
consumes:
- application/json
produces:
- application/json
- application/octet-stream
tags:
- name: Case
description: Operations for the case domain.
paths:
/caseIdentifiers:
head:
operationId: checkCaseIdentifierAvailability
tags:
- Case
summary: London Stock Exchange Group Check if a given caseId is available for use
description: 'caseIds must be unique within each Client. If any Group under a Client has a Case with a particular caseId,
that caseId cannot be reused on another Case within the same Client. This endpoint allows the user to check
if a given caseId is available to use when creating or updating a Case.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: caseId
in: query
type: string
required: true
description: Id to check if it is available to use as a caseId
responses:
200:
description: 'The given caseId is in use within the current user''s Client, therefore is not available to use on a
different Case.
'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
description: 'The given caseId is not found within the current user''s Client, therefore is available to use as a caseId
on any Case.
'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/caseReferences:
get:
operationId: getCaseReference
tags:
- Case
summary: London Stock Exchange Group Return the CaseReference (caseId, caseSystemId) for a caseId
description: 'Returns the CaseReference containing the caseId and caseSystemId pair for an existing Case with the given caseId.
This is useful if only the caseId is known but caseSystemId is required by other endpoints such as
`GET /cases/{caseSystemId}`.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: caseId
in: query
type: string
required: true
description: Case ID provided by the client or else generated by the system for the client
responses:
200:
description: CaseReference for the given caseId
schema:
$ref: '#/definitions/CaseReference'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases:
post:
operationId: saveCase
tags:
- Case
summary: London Stock Exchange Group Create a new case
description: 'Creates a new Case for asynchronous screening. Synchronous screening on the dedicated ZFS gateway host
via `/cases/screeningRequest` should be used instead of this for Zero Footprint Screening (ZFS).
**Info about available secondary fields can be found [here](#tag/groups/operation/getCaseTemplateForGroup).**
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
type: integer
required: true
- name: newCase
in: body
description: Case to be created
required: true
schema:
$ref: '#/definitions/NewCase'
responses:
201:
description: Case created
schema:
$ref: '#/definitions/Case'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
403:
$ref: '#/responses/Forbidden'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/screeningRequest:
post:
operationId: screen
tags:
- Case
summary: London Stock Exchange Group Perform synchronous screening for a new case
description: "Perform synchronous screening for a new case.\n\nThis endpoint can perform a synchronous screening for a set of valid case details and, if provided,\nset the ongoing screening (OGS) state for the given provider types. The supported provider types for setting\nthe OGS state are WATCHLIST and MEDIA_CHECK. They both can be set to either INITIAL (OGS disabled) or ONGOING\n(OGS enabled) state. You cannot set the OGS state when using Zero Footprint Screening (ZFS) groups.\n\nThe returned result collection contains the regular case result details plus identity documents and important events.\nZFS is enabled by specifying a ZFS group id in the body and is available for dedicated Zero-footprint API customers\nor Regular WC1 API customers using ZFS-specific groups.\n\nThe response may contain Special Interest Categories (SIC) records that depends on the user subscription type.\nThis helps in SIC risk analysis:\n\n - if a user has subscription type is Premium or Premium Plus, the keywords for SIC subcategories provided\n in the \"sources\" field and full value of SIC keywords code in the \"categories\" field;\n\n - if a user has a Standard subscription type then the \"categories\" field will not contain SIC keywords;\n\n - the above behavior is the same for ZFS.\n\nThe example response body includes SIC with Premium or Premium Plus user subscription:\n\n```\n {\n \"sources\":[\n \"b_trwc_M:1TQ\",\n \"b_trwc_4\"\n ],\n \"categories\":[\n \"Special Interest Categories\",\n \"Other Bodies\"\n ]\n }\n```\n\n**Note:** The maximum number of World-Check screenings (including initial, rescreening, and ZFP ones)\n that a client can perform in an hour is limited.\n\nWhen using the API care should be taken when using operator words even when combined with an apostrophe,\nfor example the below combinations will cause an error 403 to be returned:\n\n- String ‘AND (String)\n- String ‘OR (String)\n- String ‘AND NOT (String)\n- String ‘OR NOT (String)\n- String ‘AND AS (String)\n- String ‘OR AS (String)\n\n**Info about available secondary fields can be found [here](#tag/groups/operation/getCaseTemplateForGroup).**\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
type: integer
required: true
- name: screeningRequest
in: body
description: Screening Request
required: true
schema:
$ref: '#/definitions/ScreeningRequest'
responses:
200:
description: Collection of Screening Results
schema:
$ref: '#/definitions/ScreeningResultCollection'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
403:
$ref: '#/responses/Forbidden'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/{caseSystemId}:
put:
operationId: updateExistingCase
tags:
- Case
summary: London Stock Exchange Group Update an existing Case by its caseSystemId
description: "Updates an existing Case identified by the given caseSystemId. When the case is updated, all the non-empty fields for the case are required to be sent, including the updated field(s). Non-empty fields that are not sent when calling this endpoint will be overwritten as null.\nFor example, if the date of birth for a case need to be updated, existing fields such as nationality, etc. should contain the original values, otherwise it will be updated as null. That is, all the other fields should be included in the body with their existing data. This applies to Custom Fields as well.\n\n**Note:** When updating an existing Case details with Passport-Check details within the API, to check\n the details in the UI information you must refresh the page to view all updated details.\n\n**Info about available secondary fields can be found [here](#tag/groups/operation/getCaseTemplateForGroup).**\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
type: integer
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
- name: updateCase
in: body
description: Update Case
required: true
schema:
$ref: '#/definitions/UpdateCase'
responses:
200:
description: Case updated
schema:
$ref: '#/definitions/Case'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
patch:
operationId: partialUpdateCase
tags:
- Case
summary: London Stock Exchange Group Partial update an existing Case by its caseSystemId
description: "Updates an existing Case identified by the given caseSystemId. When the case is updated, only updated field(s) for the case are required to be sent.\nIf non-empty fields are not sent they will be left untouched.\nCase screening results related to the value provided in Screen query parameter.\nCalling the endpoint without any change in the existing case payload, but retained query parameter screen=SYNC, works as synchronous re-screening.\n\n**Note:** The maximum number of World-Check screenings (including initial, rescreening, and ZFP ones)\n that a client can perform in an hour is limited.\n\nWhen updating an existing Case details with Passport-Check details within the API, to check\nthe details in the UI information you must refresh the page to view all updated details.\n\n**Info about available secondary fields can be found [here](#tag/groups/operation/getCaseTemplateForGroup).**\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
type: integer
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
- name: updateCase
in: body
description: Update Case
required: true
schema:
$ref: '#/definitions/PartialUpdateCase'
- name: screen
in: query
description: Screen mode
required: false
type: string
enum:
- NONE
- SYNC
- ASYNC
default: NONE
responses:
200:
description: Case updated
schema:
$ref: '#/definitions/ScreeningResultCollection'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
403:
$ref: '#/responses/Forbidden'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
get:
operationId: getCase
tags:
- Case
summary: London Stock Exchange Group Fetch Full Case Details
description: "Returns full details of the Case identified by the given 'caseSystemId'.\n\n**Note:** A delay of up to 40s after Case is screened is recommended while fetching full Case details with\n aggregated summaries, although a delay of up to 5s would work in most of the cases. If aggregated\n summaries return nil stats, a responsible retry mechanism with a maximum of five retries is\n recommended for the Cases where stats are expected.\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
- name: aggregatedSummary
in: query
description: Flag to enable aggregated summary for case
required: false
type: boolean
responses:
200:
description: Case response
schema:
$ref: '#/definitions/Case'
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
delete:
operationId: deleteCase
tags:
- Case
summary: London Stock Exchange Group Delete a Case
description: "Delete a Case identified by the given caseSystemId. The case must be first archived in order to delete it.\nThe user must be active and have delete permissions. The client must have delete functionality enabled.\n\n**Note:** After successful deletion, a corresponding audit with actionType 'DELETE_CASE' will be saved for the case. \n All other audits for this case will be deleted within 15 minutes.\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
responses:
204:
description: Case deleted
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/{caseSystemId}/screeningRequest:
post:
operationId: screenCase
tags:
- Case
summary: London Stock Exchange Group Request full or delta screening for an existing Case.
description: "Make a request for screening of the Case identified by the given caseSystemId.\n\nScreening could be synchronous or asynchronous operation. The type of Screening could be full or delta.\n\nIn the case of asynchronous Screening result will return immediately. As a result of this call, \nthe screening request will be queued to be processed. When this request has been processed, there will be a new \n`SCREENED_CASE` audit event that can be queried via `/cases/{caseSystemId}/auditEvents` and then the results \ncan be retrieved via `/cases/{caseSystemId}/results`.\n\nIn the case of a synchronous screening as a result of the call will be returned result collection contains \nthe regular case result details plus identity documents and important events.\n\nDelta Screening performs Screening from the time of the last screening date and shows new results that appeared \nafter the last screening.\n\n**Note:** The maximum number of World-Check screenings (including initial, rescreening, and ZFP ones)\n that a client can perform in an hour is limited.\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details).
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format.
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json').
in: header
type: string
required: false
- name: Content-Length
description: The length of the request body in octets (8-bit bytes).
in: header
type: integer
required: false
- name: caseSystemId
in: path
description: System generated ID for the Case.
required: true
type: string
- name: CaseScreeningRequest
description: Case Screening Request.
in: body
required: false
schema:
$ref: '#/definitions/CaseScreeningRequest'
responses:
200:
description: Collection of screening results.
schema:
$ref: '#/definitions/CaseScreeningResultCollection'
201:
description: Screening request successfully queued for asynchronous processing.
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
403:
$ref: '#/responses/Forbidden'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/{caseSystemId}/ongoingScreening:
put:
operationId: enableOngoingScreening
tags:
- Case
summary: London Stock Exchange Group Enable OGS for a Case.
description: 'Enable Ongoing Screening for the Case identified by the given caseSystemId. This will schedule the Case
to be re-screened periodically by the system.
In order to enable Ongoing Screening for multiple or specific provider type fill out an optional request body
with provider types for which to enable Ongoing Screening. If no request body provided Ongoing Screening request
will be performed for WATCHLIST provider type.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details).
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format.
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json').
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes).
in: header
type: integer
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case.
required: true
type: string
- name: ongoingScreeningRequest
in: body
description: Request containing details to enable Ongoing Screening for Case.
required: false
schema:
$ref: '#/definitions/OngoingScreeningRequest'
responses:
204:
description: Ongoing Screening enabled for Case.
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
delete:
operationId: disableOngoingScreening
tags:
- Case
summary: London Stock Exchange Group Disable OGS for a Case.
description: 'Disable Ongoing Screening for the Case identified by the given caseSystemId.
In order to disable Ongoing Screening for multiple or specific provider type fill out an optional request body
with provider types for which to disable Ongoing Screening. If no request body provided Ongoing Screening request
will be performed for WATCHLIST provider type.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details).
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format.
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json').
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes).
in: header
type: integer
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case.
required: true
type: string
- name: ongoingScreeningRequest
in: body
description: Request containing details to disable Ongoing Screening for Case.
required: false
schema:
$ref: '#/definitions/OngoingScreeningRequest'
responses:
204:
description: Ongoing Screening disabled for Case.
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/{caseSystemId}/archive:
put:
operationId: archiveCase
tags:
- Case
summary: London Stock Exchange Group Archive a Case.
description: 'Archive the Case identified by the given caseSystemId. This will put the case into a state from
which it can be either unarchived or deleted.
The user must be active and have the archive permission.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details).
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format.
in: header
type: string
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
responses:
204:
description: Case archived.
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
delete:
operationId: unarchive
tags:
- Case
summary: London Stock Exchange Group Unarchive a Case
description: 'Unarchive the Case identified by the given caseSystemId.
The user must be active and have the archive permission.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: caseSystemId
in: path
description: System generated ID for the Case
required: true
type: string
responses:
204:
description: Case unarchived
400:
$ref: '#/responses/BadRequest'
401:
$ref: '#/responses/Unauthorized'
404:
$ref: '#/responses/CannotReturnResponse'
415:
$ref: '#/responses/UnsupportedMediaType'
429:
$ref: '#/responses/TooManyRequests'
500:
$ref: '#/responses/UnexpectedError'
/cases/bulk/archive:
post:
operationId: archiveCases
tags:
- Case
summary: London Stock Exchange Group Bulk Update Archive States
description: "Bulk Update Archive States of cases identified by the given `caseSystemIds`. The arhive states are updated \naccording to the value specified in the `\"archive\"` field: if set to `true` then all the cases will be updated \nwith the \"archive\" state, otherwise, the \"unarchived\" state will be used.\n\nIn response, the user receives a summary (`\"statuses\"`) of the archiving operation for each case.\n\n*Example HTTP response* below, shows the following summary:\n\n 1. The first case with `\"caseSystemId1\"` has been archived successfully.\n 2. The second case with `\"caseSystemId2\"` has been archived successfully.\n 3. The third case with `\"caseSystemId3\"` has not been archived because it does not meet the validation criteria;\n `\"error\"` and `\"cause\"` fields contain detailed information on the error.\n\nThe user must be active and have the archive permission.\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
type: string
required: true
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
type: string
required: true
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
type: string
required: true
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
# --- truncated at 32 KB (175 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/london-stock-exchange-group/refs/heads/main/openapi/london-stock-exchange-group-case-api-openapi.yml