Virtual Incision Discovery API

Route, post-type and status discovery plus the comment surface.

Operations 11

GET /wp/v2 GET /wp/v2 #
GET /wp/v2/types GET /wp/v2/types #
GET /wp/v2/types/{type} GET /wp/v2/types/{type} #
GET /wp/v2/statuses GET /wp/v2/statuses #
GET /wp/v2/statuses/{status} GET /wp/v2/statuses/{status} #
GET /wp/v2/comments GET /wp/v2/comments #
POST /wp/v2/comments POST /wp/v2/comments #
GET /wp/v2/comments/{id} GET /wp/v2/comments/{id} #
POST /wp/v2/comments/{id} POST /wp/v2/comments/{id} #
PATCH /wp/v2/comments/{id} PATCH /wp/v2/comments/{id} #
DELETE /wp/v2/comments/{id} DELETE /wp/v2/comments/{id} #

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/virtual-incision-discovery-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

virtual-incision-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Virtual Incision Discovery API (WordPress REST wp/v2)
  version: wp/v2
  summary: Route, post-type and status discovery, plus the comment surface (comment count is zero on this site).
  description: 'Virtual Incision publishes virtualincision.com on WordPress (WP Engine), which exposes the WordPress
    REST API at https://virtualincision.com/wp-json/. The `wp/v2` namespace is anonymously readable and returns
    the company newsroom, MIRA and miniRAS marketing pages, leadership profiles, events, job postings and the media
    library as JSON.


    This document was DERIVED mechanically by API Evangelist from the route-discovery document served at https://virtualincision.com/wp-json/
    and the per-collection `OPTIONS` item schemas, both fetched on 2026-09-04 — every path, method, parameter and
    schema below is taken verbatim from what the host served. Virtual Incision does not publish an OpenAPI definition
    of its own, and this is NOT a product API: MIRA, the miniaturized robotic-assisted surgery system, has no public
    API. This is the content API the site CMS exposes. Write operations exist on these routes but require WordPress
    authentication.'
  contact:
    name: Virtual Incision
    url: https://virtualincision.com/
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-from: https://virtualincision.com/wp-json/
  x-derived-on: '2026-09-04'
  x-provider-published: false
servers:
- url: https://virtualincision.com/wp-json
  description: Production
tags:
- name: Discovery
  description: Route, post-type and status discovery, plus the comment surface (comment count is zero on this site).
security:
- {}
paths:
  /wp/v2:
    get:
      operationId: getDiscovery
      summary: GET /wp/v2
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Types'
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      parameters:
      - name: namespace
        in: query
        required: false
        schema:
          type: string
          default: wp/v2
      - name: context
        in: query
        required: false
        schema:
          type: string
          default: view
  /wp/v2/types:
    get:
      operationId: getTypes
      summary: GET /wp/v2/types
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Types'
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      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/types/{type}:
    get:
      operationId: getTypesByType
      summary: GET /wp/v2/types/{type}
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      parameters:
      - name: type
        in: path
        required: true
        schema:
          type: string
        description: WordPress identifier for the type segment.
      - 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/statuses:
    get:
      operationId: getStatuses
      summary: GET /wp/v2/statuses
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Types'
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      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/statuses/{status}:
    get:
      operationId: getStatusesByStatus
      summary: GET /wp/v2/statuses/{status}
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      parameters:
      - name: status
        in: path
        required: true
        schema:
          type: string
        description: WordPress identifier for the status segment.
      - 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/comments:
    get:
      operationId: getComments
      summary: GET /wp/v2/comments
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Types'
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      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
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        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: after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to comments published after a given ISO8601 compliant date.
      - name: author
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
        description: Limit result set to comments assigned to specific user IDs. Requires authorization.
      - name: author_exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
        description: Ensure result set excludes comments assigned to specific user IDs. Requires authorization.
      - name: author_email
        in: query
        required: false
        schema:
          type: string
          format: email
        description: Limit result set to that from a specific author email. Requires authorization.
      - name: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to comments published before a given ISO8601 compliant date.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        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
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - date
          - date_gmt
          - id
          - include
          - post
          - parent
          - type
          default: date_gmt
        description: Sort collection by comment attribute.
      - name: parent
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to comments of specific parent IDs.
      - name: parent_exclude
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes specific parent IDs.
      - name: post
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to comments assigned to specific post IDs.
      - name: status
        in: query
        required: false
        schema:
          type: string
          default: approve
        description: Limit result set to comments assigned a specific status. Requires authorization.
      - name: type
        in: query
        required: false
        schema:
          type: string
          default: comment
        description: Limit result set to comments assigned a specific type. Requires authorization.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
    post:
      operationId: createComments
      summary: POST /wp/v2/comments
      description: Write operation. Requires WordPress authentication (Application Password over HTTP Basic, or
        a logged-in cookie plus X-WP-Nonce); anonymous callers receive HTTP 401.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - applicationPassword: []
      - cookieNonce: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                author:
                  type: integer
                  description: The ID of the user object, if author was a user.
                author_email:
                  type: string
                  format: email
                  description: Email address for the comment author.
                author_ip:
                  type: string
                  format: ip
                  description: IP address for the comment author.
                author_name:
                  type: string
                  description: Display name for the comment author.
                author_url:
                  type: string
                  format: uri
                  description: URL for the comment author.
                author_user_agent:
                  type: string
                  description: User agent for the comment author.
                content:
                  type: object
                  description: The content for the comment.
                date:
                  type: string
                  format: date-time
                  description: The date the comment was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the comment was published, as GMT.
                parent:
                  type: integer
                  default: 0
                  description: The ID for the parent of the comment.
                post:
                  type: integer
                  default: 0
                  description: The ID of the associated post object.
                status:
                  type: string
                  description: State of the comment.
                meta:
                  type: object
                  description: Meta fields.
  /wp/v2/comments/{id}:
    get:
      operationId: getCommentsById
      summary: GET /wp/v2/comments/{id}
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - {}
      - applicationPassword: []
      parameters:
      - &id001
        name: id
        in: path
        required: true
        schema:
          type: integer
        description: WordPress identifier for the id segment.
      - 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: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the parent post of the comment (if the post is password protected).
    post:
      operationId: createCommentsById
      summary: POST /wp/v2/comments/{id}
      description: Write operation. Requires WordPress authentication (Application Password over HTTP Basic, or
        a logged-in cookie plus X-WP-Nonce); anonymous callers receive HTTP 401.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - applicationPassword: []
      - cookieNonce: []
      parameters:
      - *id001
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                author:
                  type: integer
                  description: The ID of the user object, if author was a user.
                author_email:
                  type: string
                  format: email
                  description: Email address for the comment author.
                author_ip:
                  type: string
                  format: ip
                  description: IP address for the comment author.
                author_name:
                  type: string
                  description: Display name for the comment author.
                author_url:
                  type: string
                  format: uri
                  description: URL for the comment author.
                author_user_agent:
                  type: string
                  description: User agent for the comment author.
                content:
                  type: object
                  description: The content for the comment.
                date:
                  type: string
                  format: date-time
                  description: The date the comment was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the comment was published, as GMT.
                parent:
                  type: integer
                  description: The ID for the parent of the comment.
                post:
                  type: integer
                  description: The ID of the associated post object.
                status:
                  type: string
                  description: State of the comment.
                meta:
                  type: object
                  description: Meta fields.
    patch:
      operationId: updateCommentsById
      summary: PATCH /wp/v2/comments/{id}
      description: Write operation. Requires WordPress authentication (Application Password over HTTP Basic, or
        a logged-in cookie plus X-WP-Nonce); anonymous callers receive HTTP 401.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - applicationPassword: []
      - cookieNonce: []
      parameters:
      - *id001
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                author:
                  type: integer
                  description: The ID of the user object, if author was a user.
                author_email:
                  type: string
                  format: email
                  description: Email address for the comment author.
                author_ip:
                  type: string
                  format: ip
                  description: IP address for the comment author.
                author_name:
                  type: string
                  description: Display name for the comment author.
                author_url:
                  type: string
                  format: uri
                  description: URL for the comment author.
                author_user_agent:
                  type: string
                  description: User agent for the comment author.
                content:
                  type: object
                  description: The content for the comment.
                date:
                  type: string
                  format: date-time
                  description: The date the comment was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the comment was published, as GMT.
                parent:
                  type: integer
                  description: The ID for the parent of the comment.
                post:
                  type: integer
                  description: The ID of the associated post object.
                status:
                  type: string
                  description: State of the comment.
                meta:
                  type: object
                  description: Meta fields.
    delete:
      operationId: deleteCommentsById
      summary: DELETE /wp/v2/comments/{id}
      description: Write operation. Requires WordPress authentication (Application Password over HTTP Basic, or
        a logged-in cookie plus X-WP-Nonce); anonymous callers receive HTTP 401.
      tags:
      - Discovery
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required or insufficient capability (`rest_forbidden`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched (`rest_no_route` / `rest_post_invalid_id`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
      security:
      - applicationPassword: []
      - cookieNonce: []
      parameters:
      - *id001
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to bypass Trash and force deletion.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the parent post of the comment (if the post is password protected).
components:
  schemas:
    WPError:
      type: object
      description: The WordPress REST API error envelope, returned on every 4xx/5xx.
      properties:
        code:
          type: string
          description: Machine-readable error slug, e.g. rest_no_route, rest_forbidden.
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status code.
            params:
              type: object
              description: Per-parameter validation messages, when present.
      required:
      - code
      - message
      - data
    Types:
      title: type
      type: object
      properties:
        capabilities:
          description: All capabilities used by the post type.
          type: object
          context:
          - edit
          readonly: true
        description:
          description: A human-readable description of the post type.
          type: string
          context:
          - view
          - edit
          readonly: true
        hierarchical:
          description: Whether or not the post type should have children.
          type: boolean
          context:
          - view
          - edit
          readonly: true
        viewable:
          description: Whether or not the post type can be viewed.
          type: boolean
          context:
          - edit
          readonly: true
        labels:
          description: Human-readable labels for the post type for various contexts.
          type: object
          context:
          - edit
          readonly: true
        name:
          description: The title for the post type.
          type: string
          context:
          - view
          - edit
          - embed
          readonly: true
        slug:
          description: An alphanumeric identifier for the post type.
          type: string
          context:
          - view
          - edit
          - embed
          readonly: true
        supports:
          description: All features, supported by the post type.
          type: object
          context:
          - edit
          readonly: true
        has_archive:
          description: If the value is a string, the value will be used as the archive slug. If the value is false
            the post type has no archive.
          type:
          - string
          - boolean
          context:
          - view
          - edit
          readonly: true
        taxonomies:
          description: Taxonomies associated with post type.
          type: array
          items:
            type: string
          context:
          - view
          - edit
          readonly: true
        rest_base:
          description: REST base route for the post type.
          type: string
          context:
          - view
          - edit
          - embed
          readonly: true
        rest_namespace:
          description: REST route's namespace for the post type.
          type: string
          context:
          - view
          - edit
          - embed
          readonly: true
        visibility:
          description: The visibility settings for the post type.
          type: object
          context:
          - edit
          readonly: true
          properties:
            show_ui:
              description: Whether to generate a default UI for managing this post type.
              type: boolean
            show_in_nav_menus:
              description: Whether to make the post type available for selection in navigation menus.
              type: boolean
        icon:
          description: The icon for the post type.
          type:
          - string
          - 'null'
          context:
          - view
          - edit
          - embed
          readonly: true
        template:
          type:
          - array
          description: The block template associated with the post type.
          readonly: true
          context:
          - view
          - edit
          - embed
        template_lock:
          type:
          - string
          - boolean
          enum:
          - all
          - insert
          - contentOnly
          - false
          description: The template_lock associated with the post type, or false if none.
          readonly: true
          context:
          - view
          - edit
          - embed
    Statuses:
      title: status
      type: object
      properties:
        name:
          description: The title for the status.
          type: string
          context:
          - embed
          - view
          - edit
          readonly: true
        private:
          description: Whe

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virtual-incision/refs/heads/main/openapi/virtual-incision-discovery-api-openapi.yml