openapi: 3.2.0 info: title: Virtual Incision Events API (WordPress REST wp/v2) version: wp/v2 summary: The `event` custom post type and its `event-type` taxonomy — conferences and clinical events Virtual Incision attends. 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: Events description: The `event` custom post type and its `event-type` taxonomy — conferences and clinical events Virtual Incision attends. security: - {} paths: /wp/v2/event: get: operationId: getEvent summary: GET /wp/v2/event description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04. tags: - Events responses: '200': description: Success. content: application/json: schema: type: array items: $ref: '#/components/schemas/Event' '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: 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: 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 default: date description: Sort collection by post attribute. - 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. - name: tax_relation in: query required: false schema: type: string enum: - AND - OR description: Limit result set based on relationship between multiple taxonomies. - name: event-type in: query required: false schema: type: - object - array description: Limit result set to items with specific terms assigned in the event-type taxonomy. - name: event-type_exclude in: query required: false schema: type: - object - array description: Limit result set to items except those with specific terms assigned in the event-type taxonomy. post: operationId: createEvent summary: POST /wp/v2/event 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: - Events 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. title: type: object description: The title for the post. content: type: object description: The content for the post. featured_media: type: integer description: The ID of the featured media for the post. template: type: string description: The theme file to use to display the post. event-type: type: array items: type: integer description: The terms assigned to the post in the event-type taxonomy. /wp/v2/event/{id}: get: operationId: getEventById summary: GET /wp/v2/event/{id} description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04. tags: - Events 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 post if it is password protected. post: operationId: createEventById summary: POST /wp/v2/event/{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: - Events 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. title: type: object description: The title for the post. content: type: object description: The content for the post. featured_media: type: integer description: The ID of the featured media for the post. template: type: string description: The theme file to use to display the post. event-type: type: array items: type: integer description: The terms assigned to the post in the event-type taxonomy. patch: operationId: updateEventById summary: PATCH /wp/v2/event/{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: - Events 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. title: type: object description: The title for the post. content: type: object description: The content for the post. featured_media: type: integer description: The ID of the featured media for the post. template: type: string description: The theme file to use to display the post. event-type: type: array items: type: integer description: The terms assigned to the post in the event-type taxonomy. delete: operationId: deleteEventById summary: DELETE /wp/v2/event/{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: - Events 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/event-type: get: operationId: getEventType summary: GET /wp/v2/event-type description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04. tags: - Events responses: '200': description: Success. content: application/json: schema: type: array items: $ref: '#/components/schemas/Event' '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: 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: order in: query required: false schema: type: string enum: - asc - desc default: asc description: Order sort attribute ascending or descending. - name: orderby in: query required: false schema: type: string enum: - id - include - name - slug - include_slugs - term_group - description - count default: name description: Sort collection by term attribute. - name: hide_empty in: query required: false schema: type: boolean default: false description: Whether to hide terms not assigned to any posts. - name: parent in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific parent. - name: post in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific post. - name: slug in: query required: false schema: type: array items: type: string description: Limit result set to terms with one or more specific slugs. post: operationId: createEventType summary: POST /wp/v2/event-type 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: - Events 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: description: type: string description: HTML description of the term. name: type: string description: HTML title for the term. slug: type: string description: An alphanumeric identifier for the term unique to its type. parent: type: integer description: The parent term ID. meta: type: object description: Meta fields. required: - name /wp/v2/event-type/{id}: get: operationId: getEventTypeById summary: GET /wp/v2/event-type/{id} description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04. tags: - Events 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: - &id003 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. post: operationId: createEventTypeById summary: POST /wp/v2/event-type/{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: - Events 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: - *id003 requestBody: required: false content: application/json: schema: type: object properties: description: type: string description: HTML description of the term. name: type: string description: HTML title for the term. slug: type: string description: An alphanumeric identifier for the term unique to its type. parent: type: integer description: The parent term ID. meta: type: object description: Meta fields. patch: operationId: updateEventTypeById summary: PATCH /wp/v2/event-type/{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: - Events 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: - *id003 requestBody: required: false content: application/json: schema: type: object properties: description: type: string description: HTML description of the term. name: type: string description: HTML title for the term. slug: type: string description: An alphanumeric identifier for the term unique to its type. parent: type: integer description: The parent term ID. meta: type: object description: Meta fields. delete: operationId: deleteEventTypeById summary: DELETE /wp/v2/event-type/{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: - Events 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: - *id003 - name: force in: query required: false schema: type: boolean default: false description: Required to be true, as terms 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 Event: title: event 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 - pending - private - acf-disabled context: - view - edit type: description: Type of post. type: string context: - view - edit - embed readonly: true password: description: A password to protect access to the content and excerpt. type: string context: - edit permalink_template: description: Permalink template for the post. type: string context: - edit readonly: true generated_slug: description: Slug automatically generated from the post title. type: string context: - edit readonly: true class_list: description: An array of the class names for the post container element. type: array context: - view - edit readonly: true items: type: string title: description: The title for the post. type: object context: - view - edit - embed properties: raw: description: Title for the post, as it exists in the database. type: string context: - edit rendered: description: HTML title for the post, transformed for display. type: string context: - view - edit - embed readonly: true content: description: The content for the post. type: object context: - view - edit properties: raw: description: Content for the post, as it exists in the database. type: string context: - edit rendered: description: HTML content for the post, transformed for display. type: string context: - view - edit readonly: true block_version: description: Version of the content block format used by the post. type: integer context: - edit readonly: true protected: description: Whether the content is protected with a password. type: boolean context: - view - edit - embed readonly: true featured_media: description: The ID of the featured media for the post. type: integer context: - view - edit - embed template: description: The theme file to use to display the post. type: string context: - view - edit event-type: description: The terms assigned to the post in the event-type taxonomy. type: array items: type: integer context: - view - edit acf: description: ACF field data type: object properties: [] links: - rel: https://api.w.org/action-publish title: The current user can publish this post. href: https://virtualincision.com/wp-json/wp/v2/event/{id} targetSchema: type: object properties: status: type: string enum: - publish - future - rel: https://api.w.org/action-unfiltered-html title: The current user can post unfiltered HTML markup and JavaScript. href: https://virtualincision.com/wp-json/wp/v2/event/{id} targetSchema: type: object properties: content: raw: type: string - rel: https://api.w.org/action-assign-event-type title: The current user can assign terms in the event-type taxonomy. href: https://virtualincision.com/wp-json/wp/v2/event/{id} targetSchema: type: object properties: event-type: type: array items: type: integer - rel: https://api.w.org/action-create-event-type title: The current user can create terms in the event-type taxonomy. href: https://virtualincision.com/wp-json/wp/v2/event/{id} targetSchema: type: object properties: event-type: type: array items: type: integer EventType: title: event-type type: object properties: id: description: Unique identifier for the term. type: integer context: - view - embed - edit readonly: true count: description: Number of published posts for the term. type: integer context: - view - edit readonly: true description: description: HTML description of the term. type: string context: - view - edit link: description: URL of the term. type: string format: uri context: - view - embed - edit readonly: true name: description: HTML title for the term. type: string context: - view - embed - edit required: true slug: description: An alphanumeric identifier for the term unique to its type. type: string context: - view - embed - edit taxonomy: description: Type attribution for the term. type: string enum: - event-type context: - view - embed - edit readonly: true parent: description: The parent term ID. type: integer context: - view - edit meta: description: Meta fields. type: object context: - view - edit properties: [] acf: description: ACF field data type: object properties: [] securitySchemes: applicationPassword: type: http scheme: basic description: WordPress Application Passwords over HTTP Basic. Issued at https://virtualincision.com/wp-admin/authorize-application.php (advertised by the wp-json root `authentication` block). cookieNonce: type: apiKey in: header name: X-WP-Nonce description: Logged-in WordPress cookie plus an X-WP-Nonce header — first-party browser context only.