NeueHouse Template Parts API

WordPress REST `template-parts` resource on www.neuehouse.com.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/neuehouse-template-parts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

neuehouse-template-parts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NeueHouse Content API (WordPress REST) Template Parts API
  version: wp/v2
  description: 'The public content API NeueHouse serves from its own host at https://www.neuehouse.com/wp-json/. NeueHouse runs its site on WordPress, and the WordPress REST API is exposed and answering anonymously: the route index at /wp-json/ is a live, machine-readable contract declaring 313 routes across 16 namespaces, of which the wp/v2 and oembed/1.0 namespaces below are the publicly readable content surface (pages, media, taxonomies, block types, search, oEmbed). Read operations on published content are anonymous; every write operation requires an authenticated WordPress user, so the write half of this contract is documented but not open. This document was mechanically derived from the provider''s own live route index — argument names, types, enums, defaults and required flags are copied from it verbatim. NeueHouse does not publish an OpenAPI definition itself.'
  contact:
    name: NeueHouse
    url: https://www.neuehouse.com/contact-us/
  termsOfService: https://www.neuehouse.com/terms-conditions/
  x-derived-from: https://www.neuehouse.com/wp-json/
  x-derivation-method: derived
  x-upstream-specification: https://developer.wordpress.org/rest-api/
servers:
- url: https://www.neuehouse.com/wp-json
  description: NeueHouse WordPress REST API root.
tags:
- name: template-parts
  description: WordPress REST `template-parts` resource on www.neuehouse.com.
paths:
  /wp/v2/template-parts:
    get:
      operationId: get_wp_v2_template_parts
      summary: GET /wp/v2/template-parts
      description: '`GET /wp/v2/template-parts` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: wp_id
        in: query
        required: false
        schema:
          type: integer
        description: Limit to the specified post id.
      - name: area
        in: query
        required: false
        schema:
          type: string
        description: Limit to the specified template part area.
      - name: post_type
        in: query
        required: false
        schema:
          type: string
        description: Post type to get the templates for.
    post:
      operationId: post_wp_v2_template_parts
      summary: POST /wp/v2/template-parts
      description: '`POST /wp/v2/template-parts` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: Unique slug identifying the template.
                theme:
                  type: string
                  description: Theme identifier for the template.
                type:
                  type: string
                  description: Type of template.
                content:
                  type: object
                  default: ''
                  description: Content of template.
                title:
                  type: object
                  default: ''
                  description: Title of template.
                description:
                  type: string
                  default: ''
                  description: Description of template.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  default: publish
                  description: Status of template.
                author:
                  type: integer
                  description: The ID for the author of the template.
                area:
                  type: string
                  description: Where the template part is intended for use (header, footer, etc.)
              required:
              - slug
      security:
      - applicationPassword: []
  /wp/v2/template-parts/lookup:
    get:
      operationId: get_wp_v2_template_parts_lookup
      summary: GET /wp/v2/template-parts/lookup
      description: '`GET /wp/v2/template-parts/lookup` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: slug
        in: query
        required: true
        schema:
          type: string
        description: The slug of the template to get the fallback for
      - name: is_custom
        in: query
        required: false
        schema:
          type: boolean
        description: Indicates if a template is custom or part of the template hierarchy
      - name: template_prefix
        in: query
        required: false
        schema:
          type: string
        description: The template prefix for the created template. This is used to extract the main template type, e.g. in `taxonomy-books` extracts the `taxonomy`
  /wp/v2/template-parts/{id}?)[\/\w%-]+):
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Path parameter `id` as declared by the live route index.
    get:
      operationId: get_wp_v2_template_parts_by_id_w
      summary: GET /wp/v2/template-parts/{id}?)[\/\w%-]+)
      description: '`GET /wp/v2/template-parts/{id}?)[\/\w%-]+)` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
    post:
      operationId: post_wp_v2_template_parts_by_id_w
      summary: POST /wp/v2/template-parts/{id}?)[\/\w%-]+)
      description: '`POST /wp/v2/template-parts/{id}?)[\/\w%-]+)` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: Unique slug identifying the template.
                theme:
                  type: string
                  description: Theme identifier for the template.
                type:
                  type: string
                  description: Type of template.
                content:
                  type: object
                  description: Content of template.
                title:
                  type: object
                  description: Title of template.
                description:
                  type: string
                  description: Description of template.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: Status of template.
                author:
                  type: integer
                  description: The ID for the author of the template.
                area:
                  type: string
                  description: Where the template part is intended for use (header, footer, etc.)
      security:
      - applicationPassword: []
    put:
      operationId: put_wp_v2_template_parts_by_id_w
      summary: PUT /wp/v2/template-parts/{id}?)[\/\w%-]+)
      description: '`PUT /wp/v2/template-parts/{id}?)[\/\w%-]+)` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: Unique slug identifying the template.
                theme:
                  type: string
                  description: Theme identifier for the template.
                type:
                  type: string
                  description: Type of template.
                content:
                  type: object
                  description: Content of template.
                title:
                  type: object
                  description: Title of template.
                description:
                  type: string
                  description: Description of template.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: Status of template.
                author:
                  type: integer
                  description: The ID for the author of the template.
                area:
                  type: string
                  description: Where the template part is intended for use (header, footer, etc.)
      security:
      - applicationPassword: []
    patch:
      operationId: patch_wp_v2_template_parts_by_id_w
      summary: PATCH /wp/v2/template-parts/{id}?)[\/\w%-]+)
      description: '`PATCH /wp/v2/template-parts/{id}?)[\/\w%-]+)` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: Unique slug identifying the template.
                theme:
                  type: string
                  description: Theme identifier for the template.
                type:
                  type: string
                  description: Type of template.
                content:
                  type: object
                  description: Content of template.
                title:
                  type: object
                  description: Title of template.
                description:
                  type: string
                  description: Description of template.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: Status of template.
                author:
                  type: integer
                  description: The ID for the author of the template.
                area:
                  type: string
                  description: Where the template part is intended for use (header, footer, etc.)
      security:
      - applicationPassword: []
    delete:
      operationId: delete_wp_v2_template_parts_by_id_w
      summary: DELETE /wp/v2/template-parts/{id}?)[\/\w%-]+)
      description: '`DELETE /wp/v2/template-parts/{id}?)[\/\w%-]+)` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to bypass Trash and force deletion.
  /wp/v2/template-parts/{id}?)[\/\w%-]+)/autosaves:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Path parameter `id` as declared by the live route index.
    get:
      operationId: get_wp_v2_template_parts_by_id_w_autosaves
      summary: GET /wp/v2/template-parts/{id}?)[\/\w%-]+)/autosaves
      description: '`GET /wp/v2/template-parts/{id}?)[\/\w%-]+)/autosaves` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
    post:
      operationId: post_wp_v2_template_parts_by_id_w_autosaves
      summary: POST /wp/v2/template-parts/{id}?)[\/\w%-]+)/autosaves
      description: '`POST /wp/v2/template-parts/{id}?)[\/\w%-]+)/autosaves` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: Unique slug identifying the template.
                theme:
                  type: string
                  description: Theme identifier for the template.
                type:
                  type: string
                  description: Type of template.
                content:
                  type: object
                  description: Content of template.
                title:
                  type: object
                  description: Title of template.
                description:
                  type: string
                  description: Description of template.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: Status of template.
                author:
                  type: integer
                  description: The ID for the author of the template.
                area:
                  type: string
                  description: Where the template part is intended for use (header, footer, etc.)
      security:
      - applicationPassword: []
  /wp/v2/template-parts/{parent}?)[\/\w%-]+)/autosaves/{id}:
    parameters:
    - name: parent
      in: path
      required: true
      schema:
        type: string
      description: Path parameter `parent` as declared by the live route index.
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Path parameter `id` as declared by the live route index.
    get:
      operationId: get_wp_v2_template_parts_by_parent_w_autosaves_by_id
      summary: GET /wp/v2/template-parts/{parent}?)[\/\w%-]+)/autosaves/{id}
      description: '`GET /wp/v2/template-parts/{parent}?)[\/\w%-]+)/autosaves/{id}` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
  /wp/v2/template-parts/{parent}?)[\/\w%-]+)/revisions:
    parameters:
    - name: parent
      in: path
      required: true
      schema:
        type: string
      description: Path parameter `parent` as declared by the live route index.
    get:
      operationId: get_wp_v2_template_parts_by_parent_w_revisions
      summary: GET /wp/v2/template-parts/{parent}?)[\/\w%-]+)/revisions
      description: '`GET /wp/v2/template-parts/{parent}?)[\/\w%-]+)/revisions` as declared by the NeueHouse WordPress REST route index at https://www.neuehouse.com/wp-json/. Argument names, defaults, enums and required flags below are copied verbatim from that index.'
      tags:
      - template-parts
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request — WordPress returns a `rest_invalid_param` error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Authentication required — WordPress returns `rest_not_logged_in` / `rest_cannot_*`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the authenticated user lacks the capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — `rest_no_route` or `rest_post_invalid_id`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        required: false
     

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/neuehouse/refs/heads/main/openapi/neuehouse-template-parts-api-openapi.yml