openapi: 3.2.0 info: title: Virtual Incision Search API (WordPress REST wp/v2) version: wp/v2 summary: Site-wide search across posts, pages and the custom post types. 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: Search description: Site-wide search across posts, pages and the custom post types. security: - {} paths: /wp/v2/search: get: operationId: getSearch summary: GET /wp/v2/search description: Anonymous read — observed HTTP 200 without credentials on 2026-09-04. tags: - Search responses: '200': description: Success. content: application/json: schema: type: array items: $ref: '#/components/schemas/Search' '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 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: type in: query required: false schema: type: string enum: - post - term - post-format default: post description: Limit results to items of an object type. - name: subtype in: query required: false schema: type: array default: any items: type: string enum: - post - page - event - jobpost - portfolio - category - post_tag - event-type - jobpost_category - jobpost_job_type - jobpost_location - jobpost_tag - portfolio_entries - any description: Limit results to items of one or more object subtypes. - 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. 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 Search: title: search-result type: object properties: id: description: Unique identifier for the object. type: - integer - string context: - view - embed readonly: true title: description: The title for the object. type: string context: - view - embed readonly: true url: description: URL to the object. type: string format: uri context: - view - embed readonly: true type: description: Object type. type: string enum: - post - term - post-format context: - view - embed readonly: true subtype: description: Object subtype. type: string enum: - post - page - event - jobpost - portfolio - category - post_tag - event-type - jobpost_category - jobpost_job_type - jobpost_location - jobpost_tag - portfolio_entries context: - view - embed readonly: true 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.