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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/patsnap-patent-legal-data-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 Specification
openapi: 3.2.0
info:
title: Patsnap Open Platform AI Translation Patent Legal Data API
version: 1.0.0
description: OpenAPI specification for Patsnap Open Platform APIs, including patent search, analytics, and Eureka AI capabilities.
servers:
- url: https://connect.patsnap.com
description: Patsnap Open Platform API gateway
tags:
- name: Patent Legal Data
description: Patent Legal Data APIs.
paths:
/advanced-patent-data/sep-data:
get:
operationId: p033AdvancedPatentDataSepData
summary: P033 Standard Essential Patent (SEP)
description: Receive SEP (Standard Essential Patent) data by patent_id or patent_number. This includes data source, standard ID, version, declaration date, title, and projects.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p033 standard essential patent (sep) response.
content:
application/json:
schema:
$ref: '#/components/schemas/P033AdvancedPatentDataSepDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/sep-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: 7ff9d60e-2d02-4390-903b-c9e517ff3c3a
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: EP3499756A1
description: patent_number
/advanced-patent-data/customs-data:
get:
operationId: p031AdvancedPatentDataCustomsData
summary: P031 Customs record
description: Receive customs data by patent_id or patent_number. This includes record number, record status, start date, end date, approval/opinion, product, and contact.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p031 customs record response.
content:
application/json:
schema:
$ref: '#/components/schemas/P031AdvancedPatentDataCustomsDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/customs-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: 9ffcdcd7-e6f1-4e22-9c93-e3c3eafe0cad
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: JP4627367B2
description: patent_number
/advanced-patent-data/status-of-unified-patent-court:
get:
operationId: p046AdvancedPatentDataStatusOfUnifiedPatentCourt
summary: P046 Status of Unified Patent Court
description: Receive Status of Unified Patent Court data by patent_id or patent_number.This data includes Opt-out not registered,Opt-out registered,,Withdrawal after opt-out,Positive decision after unitary effect request. For more details please view the full list of fields in the developer document.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p046 status of unified patent court response.
content:
application/json:
schema:
$ref: '#/components/schemas/P046AdvancedPatentDataStatusOfUnifiedPatentCourtResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/status-of-unified-patent-court
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: e377acae-0f6b-4663-99aa-6cdf2bce7ed5
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: EP4267532A1
description: patent_number
/advanced-patent-data/legal-data:
get:
operationId: p026AdvancedPatentDataLegalData
summary: P026 Legal Information
description: Receive detailed legal data by patent_id or patent_number. Detailed legal data includes INPADOC legal data (PRS code, PRS code description, PRS date, Ref. Authority code) and official legal data (date, event number, event code, legal status)
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p026 legal information response.
content:
application/json:
schema:
$ref: '#/components/schemas/P026AdvancedPatentDataLegalDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/legal-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: f29d14f9-a9b3-4df5-8fff-e0d04abe0c1e
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: BR112020016218A2
description: patent_number
/advanced-patent-data/pledge-data:
get:
operationId: p030AdvancedPatentDataPledgeData
summary: P030 Pledge
description: Receive pledge data by patent_id or patent_number. This includes pledge contract number, effective date, pledgee, pledger, and pledge type.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p030 pledge response.
content:
application/json:
schema:
$ref: '#/components/schemas/P030AdvancedPatentDataPledgeDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/pledge-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: a6a372dc-2b2c-476b-b1e4-78fab3dce33a
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: US11379121B2
description: patent_number
/fee/get_fee:
post:
operationId: p047FeeGetFee
summary: P047 Receive Patent Fee Data
description: Receiving patent fee data by ticket_id
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p047 receive patent fee data response.
content:
application/json:
schema:
$ref: '#/components/schemas/P047FeeGetFeeResponse'
'201':
description: Created.
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/fee/get_fee
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/P047FeeGetFeeRequest'
/advanced-patent-data/award-data:
get:
operationId: p032AdvancedPatentDataAwardData
summary: P032 Award
description: Receive award data by patent_id or patent_number. This includes award name, level, session, referrer, and type.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p032 award response.
content:
application/json:
schema:
$ref: '#/components/schemas/P032AdvancedPatentDataAwardDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/award-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: 233e60d4-b483-4c38-8fd7-c344d6fd44f3
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: EP2170021B1
description: patent_number
/advanced-patent-data/license-data:
get:
operationId: p028AdvancedPatentDataLicenseData
summary: P028 License
description: Receive license data by patent_id or patent_number. This includes license contract number, licensor, licensee, license type, and license effective date.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p028 license response.
content:
application/json:
schema:
$ref: '#/components/schemas/P028AdvancedPatentDataLicenseDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/license-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: d4c53e0c-fb6e-4ff9-998b-0e473d988809
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: US10874334B1
description: patent_number
/advanced-patent-data/transfer-data:
get:
operationId: p029AdvancedPatentDataTransferData
summary: P029 Transfer
description: Receive transfer data by patent_id or patent_number. This includes the transfer before assignee, transfer after assignee, and the effective date.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p029 transfer response.
content:
application/json:
schema:
$ref: '#/components/schemas/P029AdvancedPatentDataTransferDataResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/transfer-data
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: f9ae4fb6-7132-4e99-b8e2-39de8917b4d9
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: US10763777B2
description: patent_number
/high-value-data/litigation:
get:
operationId: p034HighValueDataLitigation
summary: P034 Litigation
description: Receive litigation data by patent_id or patent_number. This includes litigation title, case number, filing date, verdict date, court, case region, plaintiff, defendant, chief judge and judge.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p034 litigation response.
content:
application/json:
schema:
$ref: '#/components/schemas/P034HighValueDataLitigationResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/high-value-data/litigation
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: 20863318-e1b4-4eb7-b021-4ea3fc11c078,0f39bff1-f09e-4d82-adf4-d284c2dfa5a2
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: CN1394453A
description: patent_number
/fee/apno_input:
post:
operationId: p047FeeApnoInput
summary: P047 Create Patent Fee Task
description: Support input multiple patent application number, create patent fee acquisition task, return ticket_id. Based on this ticket_id, the patent fee data can be obtained from the "[P047]Receive Patent Fee Data" API
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p047 create patent fee task response.
content:
application/json:
schema:
$ref: '#/components/schemas/P047FeeApnoInputResponse'
'201':
description: Created.
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/fee/apno_input
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/P047FeeApnoInputRequest'
/advanced-patent-data/overseas-patent-documents:
post:
operationId: p048AdvancedPatentDataOverseasPatentDocuments
summary: P048 Overseas Patent Examination Documents
description: Query the examination file information of overseas patents by entering patent_id or patent_number. This interface does not support querying Chinese patents temporarily
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p048 overseas patent examination documents response.
content:
application/json:
schema:
$ref: '#/components/schemas/P048AdvancedPatentDataOverseasPatentDocumentsResponse'
'201':
description: Created.
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/overseas-patent-documents
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/P048AdvancedPatentDataOverseasPatentDocumentsRequest'
/advanced-patent-data/re-examination-and-invalidation:
get:
operationId: p027AdvancedPatentDataReExaminationAndInvalidation
summary: P027 Re-examination and Invalidation
description: Receive re-examination and invalidation data by patent_id or patent_number. This includes re-examination applicant, invalidation applicant, case type, decision number, decision date, and legal ground.
tags:
- Patent Legal Data
security:
- bearerAuth: []
responses:
'200':
description: Successful p027 re-examination and invalidation response.
content:
application/json:
schema:
$ref: '#/components/schemas/P027AdvancedPatentDataReExaminationAndInvalidationResponse'
'401':
description: Unauthorized.
'403':
description: Forbidden.
'404':
description: Not Found.
externalDocs:
description: API Reference documentation
url: https://open.patsnap.com/devportal/api-reference/advanced-patent-data/re-examination-and-invalidation
parameters:
- name: patent_id
in: query
required: false
description: patent_id
schema:
type: string
example: acc632c2-ce53-4055-bac6-df3050c3ade4
description: patent_id
- name: patent_number
in: query
required: false
description: patent_number
schema:
type: string
example: EP2138001A1
description: patent_number
components:
schemas:
P048AdvancedPatentDataOverseasPatentDocuments_OverseasPatentExamineDocResponse:
type: object
properties:
apno:
type: string
example: US14/706838
description: application number
doc_count:
type: integer
format: int32
example: 98
description: Number of review documents
patent_id:
type: string
example: 718ead9c-4f3c-4674-8f5a-24e126827269
description: patent id
doc_detail:
type: array
example: 'Please check the form: ExamineDocDetail'
description: review documents lists
items:
$ref: '#/components/schemas/P048AdvancedPatentDataOverseasPatentDocuments_ExamineDocDetail'
patent_number:
type: string
example: US11205304B2
description: patent number
doc_detail_count:
type: integer
format: int32
example: 10
description: Number of review documents lists
P047FeeGetFeeRequest:
type: object
properties:
ticket:
type: string
example: 3fafc688-4977-4194-aa5d-880dacd3ba8b
description: Enter the ticket
required:
- ticket
P030AdvancedPatentDataPledgeData_PatentPledgeDataResponse:
type: object
properties:
pn:
type: string
example: US11205304B2
description: patent number
patent_id:
type: string
example: 718ead9c-4f3c-4674-8f5a-24e126827269
description: patent id
patent_pledge_data:
type: array
example: 'Please check the form: PatentPledgeData'
description: pledge data
items:
$ref: '#/components/schemas/P030AdvancedPatentDataPledgeData_PatentPledgeData'
P030AdvancedPatentDataPledgeData_PersonBaseDoc:
type: object
properties:
lang:
type: string
example: EN
description: Language
name:
type: string
example: EMC IP HOLDING COMPANY LLC
description: name
sequence:
type: integer
format: int32
example: 1
description: sequence
P029AdvancedPatentDataTransferData_PatentTransferDataResponse:
type: object
properties:
pn:
type: string
example: US11205304B2
description: patent number
patent_id:
type: string
example: 718ead9c-4f3c-4674-8f5a-24e126827269
description: patent id
patent_transfer_data:
type: array
example: 'Please check the form: PatentTransferData'
description: transfer data
items:
$ref: '#/components/schemas/P029AdvancedPatentDataTransferData_PatentTransferData'
P027AdvancedPatentDataReExaminationAndInvalidation_PatentReexamInvalidResponse:
type: object
properties:
pn:
type: string
example: US11205304B2
description: patent number
lang:
type: string
example: CN
description: lang
patent_id:
type: string
example: 718ead9c-4f3c-4674-8f5a-24e126827269
description: patent id
patent_reexam_invalid_data:
type: array
example: 'Please check the form: PatentReexamInvalidData'
description: patent re-examination and invalidation
items:
$ref: '#/components/schemas/P027AdvancedPatentDataReExaminationAndInvalidation_PatentReexamInvalidData'
P047FeeGetFee_Fee_chonghField:
type: object
properties:
fee_type:
type: string
example: 冲红前: 发明专利申请费;冲红后: 发明专利申请费
description: Type of Payment
chong_date:
type: integer
format: int64
example: 20210525
description: chonghong date
paid_amount:
type: string
example: 冲红前: 900;冲红后: 0
description: Paid Amount
receipt_code:
type: string
example: 冲红前: 100010220;冲红后: --
description: Receipt code
receipt_number:
type: string
example: 冲红前: 0000088346;冲红后:--
description: Receipt Number
P030AdvancedPatentDataPledgeData_PatentPledgeData:
type: object
properties:
country:
type: string
example: US
description: Authority code
pledgees:
type: array
example: 'Please check the form: PersonBaseDoc'
description: pledgees
items:
$ref: '#/components/schemas/P030AdvancedPatentDataPledgeData_PersonBaseDoc'
pledgors:
type: array
example: 'Please check the form: PersonBaseDoc'
description: pledgors
items:
$ref: '#/components/schemas/P030AdvancedPatentDataPledgeData_PersonBaseDocPledge'
reel_frame:
type: string
example: 060332/0740
description: Pledge contract number
pledge_type:
type: string
example: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434)
description: Pledge type
effective_date:
type: integer
format: int64
example: 20220610
description: Pledge effective date
P029AdvancedPatentDataTransferData_PersonBaseDoc:
type: object
properties:
lang:
type: string
example: EN
description: Language
name:
type: string
example: EMC IP HOLDING COMPANY LLC
description: name
sequence:
type: integer
format: int32
example: 1
description: sequence
P034HighValueDataLitigation_LitigationResponse:
type: object
properties:
pn:
type: string
example: CN1394453A
description: patent number
patent_id:
type: string
example: 20863318-e1b4-4eb7-b021-4ea3fc11c078
description: patent id
patent_litigation_data:
type: array
example: 'Please check the form: PatentLitigation'
description: litigation data
items:
$ref: '#/components/schemas/P034HighValueDataLitigation_PatentLitigation'
P034HighValueDataLitigation_PatentLitigation:
type: object
properties:
court:
type: string
example: 北京知识产权法院
description: court
judge:
type: array
example: 'Please check the form: LitigationPersonBaseDoc'
description: judge
items:
$ref: '#/components/schemas/P034HighValueDataLitigation_LitigationPersonBaseDoc'
title:
type: string
example: 西斯威尔国际有限公司与国家知识产权局一审行政判决书
description: title
country:
type: string
example: CN
description: Authority code
defendant:
type: array
example: 'Please check the form: LitigationPersonBaseDoc'
description: defendant
items:
$ref: '#/components/schemas/P034HighValueDataLitigation_LitigationPersonBaseDoc'
plaintiff:
type: array
example: 'Please check the form: LitigationPersonBaseDoc'
description: plaintiff
items:
$ref: '#/components/schemas/P034HighValueDataLitigation_LitigationPersonBaseDoc'
case_number:
type: string
example: (2017)京73行初8028号
description: case number
case_region:
type: string
example: 北京市
description: case region
chief_judge:
$ref: '#/components/schemas/P034HighValueDataLitigation_LitigationPersonBaseDoc'
filing_date:
type: integer
format: int32
example: 20171020
description: filing date
verdict_date:
type: integer
format: int32
example: 20200805
description: verdict date
P033AdvancedPatentDataSepData_PatentSepDataResponse:
type: object
properties:
pn:
type: string
example: US11205304B2
description: patent number
patent_id:
type: string
example: 718ead9c-4f3c-4674-8f5a-24e126827269
description: patent id
patsnap_sep_data:
type: array
example: 'Please check the form: PatsnapSepData'
description: sep data
items:
$ref: '#/components/schemas/P033AdvancedPatentDataSepData_PatsnapSepData'
P028AdvancedPatentDataLicenseDataResponse:
type: object
properties:
data:
type: array
example: no sample
description: response data
items:
$ref: '#/components/schemas/P028AdvancedPatentDataLicenseData_PatentLicenseDataResponse'
status:
type: boolean
example: 'false'
description: Status
error_msg:
type: string
example: The request parameter format is incorrect!
description: Error Message
error_code:
type: integer
example: '0'
description: Error Code
required:
- status
- error_code
P028AdvancedPatentDataLicenseData_PersonBaseDoc:
type: object
properties:
lang:
type: string
example: EN
description: Language
name:
type: string
example: EMC IP HOLDING COMPANY LLC
description: name
sequence:
type: integer
format: int32
example: 1
description: sequence
P047FeeApnoInput_TicketResponse:
type: object
properties:
ticket:
type: string
example: 3fafc688-4977-4194-aa5d-880dacd3ba8b
description: user ticket
P047FeeGetFee_RefundField:
type: object
properties:
payee:
type: string
example: TCL集团股份有限公司
description: Payee
fee_type:
type: string
example: 发明专利申请审查费
description: Type of Fee
refund_date:
type: integer
format: int64
example: 20150813
description: Date of Refund
receipt_code:
type: string
example: 100010220
description: Receipt code
refund_amount:
type: number
format: double
example: 2500
description: Refund Amount
receipt_number:
type: string
example: 33130256
description: Receipt Number
P026AdvancedPatentDataLegalDataResponse:
type: object
properties:
data:
type: array
example: no sample
description: response data
items:
$ref: '#/components/schemas/P026AdvancedPatentDataLegalData_PatentLegalDataResponse'
status:
type: boolean
example: 'false'
description: Status
error_msg:
type: string
example: The request parameter format is incorrect!
description: Error Message
error_code:
type: integer
example: '0'
description: Error Code
required:
- status
- error_code
P028AdvancedPatentDataLicenseData_PatentLicenseDataResponse:
type: object
properties:
pn:
type: string
example: US10874334B1
description: patent number
patent_id:
type: string
example: d4c53e0c-fb6e-4ff9-998b-0e473d988809
description: patent id
patent_license_data:
type: array
example: 'Please check the form: PatentLicenseData'
description: patent license data
items:
$ref: '#/components/schemas/P028AdvancedPatentDataLicenseData_PatentLicenseData'
P047FeeGetFee_FeeOutputInfos:
type: object
properties:
apno:
type: string
example: CN201610244038.2
description: application number
data:
$ref: '#/components/schemas/P047FeeGetFee_Patent_maintenance_fee_cnModel'
apno_status:
type: string
example: 成功
description: 'sync status:
Success
No fee fata
Data is synchronizing, please try again later
Error application number'
P032AdvancedPatentDataAwardData_PatentAwardData:
type: object
properties:
category:
type: string
example: Popular
description: Award type
award_name:
type: string
example: European Inventor Award
description: Award name, including CN patent awards of several provinces/cities and European Inventor Award
award_level:
type: string
example: 优秀奖
description: Award level, only CN jurisdiction have this field
award_session:
type: string
example: 2018
description: Award session
award_referrer:
type: string
example: 大连市知识产权局
description: Award referrer, only CN jurisdiction have this field
P047FeeGetFee_Overdue_fineField:
type: object
properties:
sum:
type: number
format: double
example: 5000
description: Sum
end_date:
type: integer
format: int64
example: 20230410
description: End Date of Payment
start_date:
type: integer
format: int64
example: 20221111
description: Start Date of Payment
late_payment_fee:
type: number
format: double
example: 1000
description: Amount of late payment fee payable
annual_fee_amount:
type: number
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/patsnap/refs/heads/main/openapi/patsnap-patent-legal-data-api-openapi.yml