Virtual Incision Pages API

Marketing and clinical pages: MIRA, miniRAS, For Surgeons, safety information and leadership profiles.

Operations 9

GET /wp/v2/pages GET /wp/v2/pages #
POST /wp/v2/pages POST /wp/v2/pages #
GET /wp/v2/pages/{id} GET /wp/v2/pages/{id} #
POST /wp/v2/pages/{id} POST /wp/v2/pages/{id} #
PATCH /wp/v2/pages/{id} PATCH /wp/v2/pages/{id} #
DELETE /wp/v2/pages/{id} DELETE /wp/v2/pages/{id} #
GET /wp/v2/pages/{parent}/revisions GET /wp/v2/pages/{parent}/revisions #
GET /wp/v2/pages/{parent}/revisions/{id} GET /wp/v2/pages/{parent}/revisions/{id} #
DELETE /wp/v2/pages/{parent}/revisions/{id} DELETE /wp/v2/pages/{parent}/revisions/{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-pages-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-pages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Virtual Incision Pages API (WordPress REST wp/v2)
  version: wp/v2
  summary: Marketing and clinical pages (MIRA, miniRAS, surgeons, safety information, leadership profiles).
  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: Pages
  description: Marketing and clinical pages (MIRA, miniRAS, surgeons, safety information, leadership profiles).
security:
- {}
paths:
  /wp/v2/pages:
    get:
      operationId: getPages
      summary: GET /wp/v2/pages
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Pages
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pages'
        '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 posts published after a given ISO8601 compliant date.
      - name: modified_after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: author
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: modified_before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified 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: menu_order
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to posts with a specific menu_order value.
      - name: search_semantics
        in: query
        required: false
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - 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:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          - menu_order
          default: date
        description: Sort collection by post attribute.
      - name: parent
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to items with particular parent IDs.
      - name: parent_exclude
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to all items except those of a particular parent ID.
      - name: search_columns
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
        description: Array of column names to be searched.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        required: false
        schema:
          type: array
          default: publish
          items:
            type: string
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - acf-disabled
            - any
        description: Limit result set to posts assigned one or more statuses.
    post:
      operationId: createPages
      summary: POST /wp/v2/pages
      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:
      - Pages
      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:
                date:
                  type: string
                  format: date-time
                  description: The date the post was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the post was published, as GMT.
                slug:
                  type: string
                  description: An alphanumeric identifier for the post unique to its type.
                status:
                  type: string
                  enum:
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                parent:
                  type: integer
                  description: The ID for the parent of the post.
                title:
                  type: object
                  description: The title for the post.
                content:
                  type: object
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                menu_order:
                  type: integer
                  description: The order of the post in relation to other posts.
                meta:
                  type: object
                  description: Meta fields.
                template:
                  type: string
                  description: The theme file to use to display the post.
  /wp/v2/pages/{id}:
    get:
      operationId: getPagesById
      summary: GET /wp/v2/pages/{id}
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Pages
      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: excerpt_length
        in: query
        required: false
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
    post:
      operationId: createPagesById
      summary: POST /wp/v2/pages/{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:
      - Pages
      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:
                date:
                  type: string
                  format: date-time
                  description: The date the post was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the post was published, as GMT.
                slug:
                  type: string
                  description: An alphanumeric identifier for the post unique to its type.
                status:
                  type: string
                  enum: &id002
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - acf-disabled
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                parent:
                  type: integer
                  description: The ID for the parent of the post.
                title:
                  type: object
                  description: The title for the post.
                content:
                  type: object
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum: &id003
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum: &id004
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                menu_order:
                  type: integer
                  description: The order of the post in relation to other posts.
                meta:
                  type: object
                  description: Meta fields.
                template:
                  type: string
                  description: The theme file to use to display the post.
    patch:
      operationId: updatePagesById
      summary: PATCH /wp/v2/pages/{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:
      - Pages
      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:
                date:
                  type: string
                  format: date-time
                  description: The date the post was published, in the site's timezone.
                date_gmt:
                  type: string
                  format: date-time
                  description: The date the post was published, as GMT.
                slug:
                  type: string
                  description: An alphanumeric identifier for the post unique to its type.
                status:
                  type: string
                  enum: *id002
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                parent:
                  type: integer
                  description: The ID for the parent of the post.
                title:
                  type: object
                  description: The title for the post.
                content:
                  type: object
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum: *id003
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum: *id004
                  description: Whether or not the post can be pinged.
                menu_order:
                  type: integer
                  description: The order of the post in relation to other posts.
                meta:
                  type: object
                  description: Meta fields.
                template:
                  type: string
                  description: The theme file to use to display the post.
    delete:
      operationId: deletePagesById
      summary: DELETE /wp/v2/pages/{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:
      - Pages
      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.
  /wp/v2/pages/{parent}/revisions:
    get:
      operationId: getPagesByParentRevisions
      summary: GET /wp/v2/pages/{parent}/revisions
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Pages
      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: parent
        in: path
        required: true
        schema:
          type: integer
        description: WordPress identifier for the parent 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: 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
          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: 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
          - id
          - include
          - relevance
          - slug
          - include_slugs
          - title
          default: date
        description: Sort collection by object attribute.
  /wp/v2/pages/{parent}/revisions/{id}:
    get:
      operationId: getPagesByParentRevisionsById
      summary: GET /wp/v2/pages/{parent}/revisions/{id}
      description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04.
      tags:
      - Pages
      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:
      - &id005
        name: parent
        in: path
        required: true
        schema:
          type: integer
        description: WordPress identifier for the parent segment.
      - &id006
        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.
    delete:
      operationId: deletePagesByParentRevisionsById
      summary: DELETE /wp/v2/pages/{parent}/revisions/{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:
      - Pages
      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:
      - *id005
      - *id006
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Required to be true, as revisions do not support trashing.
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
    Pages:
      title: page
      type: object
      properties:
        date:
          description: The date the post was published, in the site's timezone.
          type:
          - string
          - 'null'
          format: date-time
          context:
          - view
          - edit
          - embed
        date_gmt:
          description: The date the post was published, as GMT.
          type:
          - string
          - 'null'
          format: date-time
          context:
          - view
          - edit
        guid:
          description: The globally unique identifier for the post.
          type: object
          context:
          - view
          - edit
          readonly: true
          properties:
            raw:
              description: GUID for the post, as it exists in the database.
              type: string
              context:
              - edit
              readonly: true
            rendered:
              description: GUID for the post, transformed for display.
              type: string
              context:
              - view
              - edit
              readonly: true
        id:
          description: Unique identifier for the post.
          type: integer
          context:
          - view
          - edit
          - embed
          readonly: true
        link:
          description: URL to the post.
          type: string
          format: uri
          context:
          - view
          - edit
          - embed
          readonly: true
        modified:
          description: The date the post was last modified, in the site's timezone.
          type: string
          format: date-time
          context:
          - view
          - edit
          readonly: true
        modified_gmt:
          description: The date the post was last modified, as GMT.
          type: string
          format: date-time
          context:
          - view
          - edit
          readonly: true
        slug:
          description: An alphanumeric identifier for the post unique to its type.
          type: string
          context:
          - view
          - edit
          - embed
        status:
          description: A named status for the post.
          type: string
          enum:
          - publish
          - future
          - draft

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