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/jp-morgan-chase-disputes-data-retrieval-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: Dispute Management Disputes Data Retrieval API
description: End to end disputes management interface.
version: 1.1.3
contact:
name: Disputes API Support
url: https://developer.jpmorgan.com/support
email: developer_help@jpmorgan.com
servers:
- url: https://api.payments.jpmorgan.com/commerce/v1
description: PRODUCTION - OAUTH
- url: https://api-sandbox.payments.jpmorgan.com/commerce/v1
description: CLIENT TESTING - OAUTH
security:
- bearerAuth: []
tags:
- name: Disputes Data Retrieval
description: Operations for fetching dispute-related data, such as list of disputes, details, status, and issuer documents
paths:
/disputes:
post:
summary: Retrieve a list of disputes
operationId: fetchDisputes
tags:
- Disputes Data Retrieval
description: This API endpoint allows consumers to retrieve a list of disputes, including chargebacks, retrieval requests, and pre-arbitration cases. Users can filter disputes by providing one or more Transaction Division IDs, Processing Entity IDs, or Company IDs. The response is paginated, with a maximum of 5,000 records per page. Disputes are sorted by due date in ascending order when available; otherwise, they are sorted by the initiated date in ascending order. If no date range is specified, the API returns disputes created within the last 90 days.
parameters:
- name: request-id
in: header
required: true
schema:
type: string
format: uuid
description: Unique request identifier provided by the requestor.
examples:
Success:
value: 123e4567-e89b-12d3-a456-426614174000
- $ref: '#/components/parameters/platformIdHeader'
requestBody:
description: Disputes Request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/disputesRequest'
examples:
Success:
value:
entityIds:
companyIds:
- '12345678'
merchantIds:
- '9876543210'
disputeTypes:
- FIRST_CHARGEBACK
disputeStatuses:
- NEW
- NEEDS_RESPONSE
paymentMethodList:
- VI
- MC
initiatedStartDate: '2025-01-01'
initiatedEndDate: '2025-01-02'
disputeReceivedStartDate: '2025-01-01'
disputeReceivedEndDate: '2025-01-02'
responseDueStartDate: '2025-01-01'
responseDueEndDate: '2025-01-02'
pagination:
cursor: cGFnZVRva2VuMTIzNDU=
pageSize: 2000
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/disputesResponse'
examples:
Success:
value:
requestId: f47ac10b-58cc-4372-a567-0e02b2c3d479
disputes:
- disputeType: FIRST_CHARGEBACK
disputeId: 254311672
acquirerReferenceNumber: '24692166211000002406020'
disputeInitiatedDate: '2025-01-01'
disputeReceivedDate: '2025-01-01'
responseDueDate: '2025-01-18'
disputeValue:
amount: 100
currencyCode: USD
disputeReason:
reasonCode: '13.1'
reason: SERVICES NOT RENDERED/MDSE NOT RECVD
disputeCategoryCode: AUTHORIZATION
disputeStatus: NEEDS_RESPONSE
statusUpdateTimestamp: '2025-01-01T12:00:00Z'
outcome: PENDING
paymentMethod:
paymentMethodCode: VI
paymentMethodName: Visa
maskedAccountNumber: 123456XXXXXX4000
issuerDocumentCode: 1
issuerDocumentExpected: true
issuerDocumentReceived: true
authorizationData:
authorizationTimestamp: '2024-12-25T07:00:00Z'
authorizationReferenceNumber: ''
transactionData:
merchantOrderNumber: 123456ORD
transactionTimestamp: '2024-12-25T22:00:00Z'
transactionAmount: 100
transactionCurrency: USD
transactionId: '1707071808295'
submitterPlatformId: '2179821798'
merchantData:
companyId: '569874562'
merchantId: '498613834'
companyName: SAMPLE COMPANY
merchantName: SAMPLE DIVISION
pagination:
cursor: cGFnZVRva2VuMTIzNDU=
traceId: f47ac10b-58cc-4372-a567-0e02b2c3d479
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/disputes/{disputeId}:
get:
summary: Get dispute details
operationId: getDisputeDetails
tags:
- Disputes Data Retrieval
description: The consumers of this API endpoint can get additional details about a dispute by providing the dispute case id.
parameters:
- name: disputeId
in: path
required: true
schema:
type: integer
format: int64
minimum: 10000
maximum: 9223372036854776000
description: A unique identifier assigned by the acquirer to track each inquiry or case created for a transaction dispute on an account.
examples:
Success:
value: 9876543210
- name: request-id
in: header
required: true
schema:
type: string
format: uuid
description: Unique request identifier provided by the requestor.
examples:
Success:
value: f47ac10b-58cc-4372-a567-0e02b2c3d479
- $ref: '#/components/parameters/platformIdHeader'
- name: merchant-id
in: header
required: true
schema:
type: string
pattern: ^\d+$
minLength: 1
maxLength: 12
description: Identifies a unique entity for transaction processing at the lowest level of the account hierarchy of the backend proprietary merchant acquiring processing platform. This level organizes transaction types for submission, funding, and reporting.
examples:
Success:
value: '9876543'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/disputeDetailsResponse'
examples:
Success:
value:
requestId: f47ac10b-58cc-4372-a567-0e02b2c3d479
disputeDetails:
disputeType: FIRST_CHARGEBACK
disputeId: 9876543210
acquirerReferenceNumber: '25103246259000000000126'
bankIdentificationNumber: '12345678'
disputeValue:
amount: 100
currencyCode: USD
saleRefundCode: S
isCurrencyConversion: false
disputeCategoryCode: CONSUMER_DISPUTE
disputeReason:
reasonCode: '13.1'
reason: SERVICES NOT RENDERED/MDSE NOT RECVD
disputeReasonDetailed: '• Merchandise Not Received: The cardholder was charged for merchandise that was not delivered/received, has attempted to resolve the issue with the merchant. • Services Not Rendered: The cardholder was charged for a service that was not rendered and has attempted to resolve the issue with the merchant. • Expanded to include disputes related to no-show transactions, where merchant cannot or is unable to render services (applies only to hotel merchants and U.S. Domestic peak-time and specialized vehicle car rental merchants who are permitted to process no-show transactions).'
potentialRemedies: 'Provide a letter of explanation detailing the transaction and any attempts to remedy the dispute in addition to providing evidence of the following: Provide a letter of explanation detailing the transaction and any attempts to remedy the dispute in addition to providing evidence of the following: • Credit was issued prior to first chargeback, including posting date and credit receipt. • Documentation to prove that the cardholder or an authorized person received the merchandise or services at the agreed location or by the agreed date. • Examples: Signed proof of delivery to shipping address, signed pick up slips or job completion certification. • For an Airline Transaction, evidence showing that the name is included in the manifest for the departed flight and it matches the name provided on the purchased itinerary. • Retail: Provide itemized sales slip. • Card Not Present: Provide proof of AVS response, an itemized bill with bill-to and ship-to addresses and proof of delivery. • Compelling Evidence: Visa will accept compelling evidence for representment. This includes, but is not limited to: Evidence such as photographs or emails to prove the person received the merchandise or service. For download of digital goods, the IP address, email address, description of goods, date and time goods were downloaded and/or proof the merchant’s website was accessed for services after the transaction date. • Passenger transport — evidence the ticket was received at cardholder’s billing address, boarding pass was scanned at the gate, details of frequent flyer miles claimed, additional incidental transactions purchased (such as baggage fees, seat upgrades, alcohol, etc.). • Previous undisputed transaction — provide evidence that the information provided is the same as that from a previous undisputed transaction. • Evidence that the transaction was completed by a member of the Cardholder’s household.'
issuerMemo: This message is from issuer
messageToMerchant: This is a sample message to merchant.
disputeInitiatedDate: '2025-01-01'
disputeReceivedDate: '2025-01-01'
responseDueDate: '2025-01-18'
disputeStatus: NEEDS_RESPONSE
statusUpdateTimestamp: '2025-01-01T12:00:00Z'
outcome: PENDING
paymentMethod:
paymentMethodCode: VI
paymentMethodName: Visa
maskedAccountNumber: 123456XXXXXX4000
issuerDocumentCode: 1
issuerDocumentExpected: true
issuerDocumentReceived: true
transactionDataDetailed:
transactionData:
merchantOrderNumber: 123456ORD
transactionTimestamp: '2024-12-25T22:00:00Z'
transactionAmount: 100
transactionCurrency: USD
transactionId: '1707071708295'
submitterPlatformId: '2179821798'
transactionTypeCode: R
authorizationDataDetailed:
authorizationTimestamp: '2024-12-25T07:00:00Z'
authorizationIdentifier: a10078
authorizationReferenceNumber: ''
authorizationResponseCode: 100
authorizationAmount: 100
authorizationCurrency: USD
cavvResponseCode: '7'
secureIndicator: false
terminalNumber: TERM1234
posEntryMode: '02'
merchantDataDetailed:
merchantData:
companyId: '569874562'
merchantId: '498613834'
companyName: SAMPLE COMPANY
merchantName: SAMPLE DIVISION
merchantCategoryCode: '2331'
merchantCountryCode: USA
merchantRegionCode: US
merchantAccountId: 9874563210
relatedItems:
- disputeId: 9876543211
disputeType: RETRIEVAL_REQUEST
disputeValue:
amount: 100
currencyCode: USD
disputeReason:
reasonCode: '13.1'
reason: SERVICES NOT RENDERED/MDSE NOT RECVD
disputeInitiatedDate: '2024-11-01'
isReversed: false
caseTimeline:
- eventName: New
eventDate: '2024-12-25'
eventDetailText: Dispute Received.
traceId: f57ac10b-58cc-4372-a567-0e02b2c3d480
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/disputes/status-query:
post:
summary: Retrieve disputes status
operationId: fetchDisputeStatuses
tags:
- Disputes Data Retrieval
description: The consumers of this API can request the status for list of disputes.
parameters:
- name: request-id
in: header
required: true
schema:
type: string
format: uuid
description: Unique request identifier provided by the requestor.
examples:
Success:
value: f47ac10b-58cc-4372-a567-0e02b2c3d479
- $ref: '#/components/parameters/platformIdHeader'
requestBody:
description: Dispute Status Request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/disputesStatusRequest'
examples:
Success:
value:
statusInquiryParameters:
companyIds:
- '987654'
merchantIds:
- '345686'
disputeIds:
- 9876543210
startDateTime: '2025-01-01T12:00:00Z'
endDateTime: '2025-01-02T12:00:00Z'
pagination:
cursor: cGFnZVRva2VuMTIzNDU=
pageSize: 2000
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/disputesStatusResponse'
examples:
Success:
value:
requestId: f47ac10b-58cc-4372-a567-0e02b2c3d479
disputesStatusList:
- disputeId: 9876543210
disputeStatus: UNDER_ISSUER_REVIEW
statusUpdateTimestamp: '2025-01-01T12:00:00Z'
outcome: PENDING
financialAdjustmentIndicator: false
isReversed: false
relatedFinancialItems:
- relatedFinancialItemsData:
transactionTypeCode: C
relatedItemsData: Related Items Data
traceId: f47ac10b-58cc-4372-a567-0e02b2c3d479
pagination:
cursor: cGFnZVRva2VuMTIzNDU=
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/disputes/{disputeId}/documents:
get:
summary: Get dispute documents
operationId: getDisputeDocuments
tags:
- Disputes Data Retrieval
description: The consumers of this API endpoint can get list of issuer documents by providing the dispute case id.
parameters:
- name: disputeId
in: path
required: true
schema:
type: integer
format: int64
minimum: 10000
maximum: 9223372036854776000
description: A unique identifier assigned by the acquirer to track each inquiry or case created for a transaction dispute on an account.
examples:
Success:
value: 9876543210
- name: request-id
in: header
required: true
schema:
type: string
format: uuid
description: Unique request identifier provided by the requestor.
examples:
Success:
value: f47ac10b-58cc-4372-a567-0e02b2c3d479
- $ref: '#/components/parameters/platformIdHeader'
- name: merchant-id
in: header
required: true
schema:
type: string
pattern: ^\d+$
minLength: 1
maxLength: 12
description: Identifies a unique entity for transaction processing at the lowest level of the account hierarchy of the backend proprietary merchant acquiring processing platform. This level organizes transaction types for submission, funding, and reporting.
examples:
Success:
value: '9876543'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/disputeDocumentsResponse'
examples:
Success:
value:
requestId: f47ac10b-58cc-4372-a567-0e02b2c3d479
disputeId: 9876543210
issuerDocuments:
- documentName: document1.pdf
documentContent: base64_encoded_content
documentDate: '2025-01-01'
traceId: 9f8c4b2e-3d6a-4f1b-9a2e-5b7c8d9e0f1a
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
components:
schemas:
transactionAmount:
description: Specifies the monetary value of the transaction performed.
type: number
format: double
merchantId:
description: Identifies a unique entity for transaction processing at the lowest level of the account hierarchy of the backend proprietary merchant acquiring processing platform. This level organizes transaction types for submission, funding, and reporting.
type: string
pattern: ^\d+$
minLength: 1
maxLength: 12
merchantIds:
description: A list of unique processing entities or transaction division identifiers.
type: object
properties:
merchantIds:
type: array
minItems: 0
maxItems: 500
description: A list of unique processing entities or transaction division identifiers.
items:
$ref: '#/components/schemas/merchantId'
responseDueDate:
description: Due date before which the merchant can challenge the dispute in YYYY-MM-DD format.
type: string
disputeStatuses:
type: array
minItems: 0
maxItems: 30
description: A list of dispute status filters to apply when querying disputes. Use the value 'ALL' to return disputes matching other filters, regardless of their status.
default:
- NEW
- NEEDS_RESPONSE
items:
$ref: '#/components/schemas/disputesStatusFilter'
merchantData:
description: Contains basic data of a merchant.
type: object
properties:
companyId:
$ref: '#/components/schemas/companyId'
merchantId:
$ref: '#/components/schemas/merchantId'
companyName:
$ref: '#/components/schemas/companyName'
merchantName:
$ref: '#/components/schemas/merchantName'
transactionDataDetailed:
description: Contains detailed information about sale or refund transaction.
type: object
properties:
transactionData:
$ref: '#/components/schemas/transactionData'
transactionTypeCode:
description: 'Codifies a grouping of payment transactions with similar processing characteristics such as retails transactions, mail order transactions, etc. Sample Values: R - Retail Transaction 1 - Single Transaction - Mail Order/ Telephone Order 2 - Recurring Transaction 3 - Installment Transaction 4 - Deferred Transaction 5 - SET (Secure Electronic Transmission) Transaction 6 - Non Authenticated SET Transaction 7 - Non SET Channel Encrypted Transaction 8 - Non Secure Transaction I - IVR(PINless Debit Only)'
type: string
maxLength: 1
disputeCategoryCode:
description: The category of the dispute based on the reason code.
type: string
maxLength: 25
enum:
- AUTHORIZATION
- CONSUMER_DISPUTE
- FRAUD
- PROCESSING_ERROR
disputeDetails:
description: Includes details of a specific dispute.
type: object
properties:
disputeType:
$ref: '#/components/schemas/disputeType'
disputeId:
$ref: '#/components/schemas/disputeId'
acquirerReferenceNumber:
$ref: '#/components/schemas/acquirerReferenceNumber'
bankIdentificationNumber:
description: Identifies the issuing organization for a payment product following ISO/IEC standard 7812. The first character identifies the major industry for the issuer of the payment card, identifiers 4, 5, and, 6 apply to banking. For the banking and finance industry, the identifier will be 6 to 8 characters. For legacy issuer identifiers whose length is 6, the issuer identifier may be the first 6 digits of the payment card. This may also be known as the Bank Identification Number (BIN).
type: string
maxLength: 8
disputeValue:
$ref: '#/components/schemas/disputeValue'
saleRefundCode:
description: Indicates if this dispute is a sale or a refund.
type: string
enum:
- S
- R
isCurrencyConversion:
description: Indicates the Boolean value of the merchant provided currency conversion at the time of the transaction.
type: boolean
disputeCategoryCode:
$ref: '#/components/schemas/disputeCategoryCode'
disputeReason:
$ref: '#/components/schemas/disputeReason'
disputeReasonDetailed:
description: Textual detailed description of the chargeback reason for the disputed case. Chargeback is the monetary value of the transaction amount that is reclaimed from the merchant. Chargeback happens for variety of reasons and some common reasons are customer dispute, fraud, processing error and authorization issues.
type: string
maxLength: 4000
potentialRemedies:
description: Provides textual information about the recommended actions and supporting documentation required to address and resolve a dispute. This includes providing a detailed letter of explanation about the transaction, evidence of any corrective actions taken, and relevant documentation to substantiate the validity of the transaction. Examples of supporting evidence may include transaction receipts, proof of delivery, authorization logs, and any correspondence with the cardholder. The attribute serves as a guide for merchants to compile necessary information to effectively challenge a dispute and demonstrate compliance with transaction terms and conditions.
type: string
maxLength: 4000
issuerMemo:
description: Provides textual information about a message entered manually by Issuer while raising the dispute. This is a free form field.
type: string
maxLength: 999
messageToMerchant:
description: Provides textual information of the instruction from the dispute analyst to assist the merchant to resolve the dispute. This is a free form field.
type: string
maxLength: 512
disputeInitiatedDate:
$ref: '#/components/schemas/disputeInitiatedDate'
disputeReceivedDate:
description: Designates the date when dispute case record was created in the Acquirer System. This is the start date of the range.
type: string
format: date
responseDueDate:
$ref: '#/components/schemas/responseDueDate'
disputeStatus:
$ref: '#/components/schemas/disputeStatus'
statusUpdateTimestamp:
$ref: '#/components/schemas/statusUpdateTimestamp'
outcome:
$ref: '#/components/schemas/outcome'
paymentMethod:
$ref: '#/components/schemas/paymentMethod'
issuerDocumentCode:
$ref: '#/components/schemas/issuerDocumentCode'
issuerDocumentExpected:
$ref: '#/components/schemas/issuerDocumentExpected'
issuerDocumentReceived:
$ref: '#/components/schemas/issuerDocumentReceived'
transactionDataDetailed:
$ref: '#/components/schemas/transactionDataDetailed'
authorizationDataDetailed:
$ref: '#/components/schemas/authorizationDataDetailed'
fraudNotificationServiceDate:
description: Designates the century, year, month and day by when the issuer loses the right to chargeback a transaction for a ‘fraud-related’ or ‘cardholder does not recognize’ fraud reason code for transactions authorized after the date of the second fraud chargeback on that account.
type: string
format: date
merchantDataDetailed:
$ref: '#/components/schemas/merchantDataDetailed'
merchantAccountId:
description: Identifies a merchant acquiring account that processes transactions on the Firm's Tandem payment processing system.
type: integer
format: int64
relatedItems:
$ref: '#/components/schemas/relatedItems'
isReversed:
description: Indicates whether the dispute is reversed.
type: boolean
caseTimeline:
type: array
minItems: 0
maxItems: 100
description: Provides a chronological timeline of all events that occurred in a specific dispute case.
items:
$ref: '#/components/schemas/caseTimelineEvent'
location:
description: Location of the field for which the error occurred in the request
type: string
minLength: 0
maxLength: 1000
enum:
- BODY
- PATH
- QUERY
- HEADER
issuerDocumentReceived:
description: 'Codifies a document is received by the payment network from the issuer for a disputed transaction. If this is set to true, an issuer document is received from the payment brand. You can check the issuer document availability using our "documents" API endpoint. Sample Values: true - Received Issuer Documents, false - No issuer Documents Received.'
type: boolean
example: false
caseTimelineEvent:
description: Depicts a specific event within the chronological timeline of all events in a particular dispute case.
type: object
properties:
eventName:
description: The label given to a classification of a known, possible, documented and tracked happening on a dispute case. Such events are typically assembled together to create a lifecycle of a dispute. Event examples could include New, Assigned, Auto - Assigned, Accepted, Auto Accepted, Challenged - Merchant, Challenged - JPMC, JPMC denied this dispute, Need Additional Information, Under Issuer Review, Closed, Expired, Needs Response, Issuer Document Uploaded.
type: string
eventDate:
description: Designates the hour, minute, and second in a specific day when an event occurred on a dispute.
type: string
eventDetailText:
description: Provides textual information about the specifics of the action taken.
type: string
disputeCurrencyCode:
description: The currency code for the dispute amount, always in the merchant's settlement currency.
type: string
enum:
- USD
- EUR
- GBP
- AUD
- NZD
- SGD
- CAD
- JPY
- HKD
- KRW
- TWD
- MXN
- BRL
- DKK
- NOK
- ZAR
- SEK
- CHF
- CZK
- PLN
- TRY
- AFN
- ALL
- DZD
- AOA
- ARS
- AMD
- AWG
- AZN
- BSD
- BDT
- BBD
- BYN
- BZD
- BMD
- BOB
- BAM
- BWP
- BND
- BGN
- BIF
- BTN
- XOF
- XAF
- XPF
- KHR
- CVE
- KYD
- CLP
- CNY
- COP
- KMF
- CDF
- CRC
- HRK
- DJF
- DOP
- XCD
- EGP
- ETB
- FKP
- FJD
- GMD
- GEL
# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-disputes-data-retrieval-api-openapi.yml