openapi: 3.2.0
info:
title: Harbinger Health WordPress REST API (wp/v2) Menu Items API
version: 2.0.0
summary: The wp/v2 namespace of the WordPress REST API served by Harbinger Health's website.
description: DERIVED, NOT PUBLISHED BY HARBINGER HEALTH. Harbinger Health publishes no OpenAPI definition and does not document or support this surface as a developer product. This document was derived mechanically by API Evangelist from the live WordPress route-discovery document fetched from https://harbinger-health.com/wp-json/ on 2026-08-04 (268 routes across 15 namespaces; the wp/v2 namespace is captured here). Every path, method, parameter name, type, enum, default and description is copied verbatim from that discovery document. Response bodies are intentionally left as generic objects because the discovery document does not publish response schemas; error responses are grounded in payloads probed live against this host. This is a content-management surface for the corporate website - it is NOT a clinical, laboratory, diagnostic, genomic or patient-data API, and no Harbinger HX or RESOLVE test data is reachable through it.
contact:
name: Harbinger Health
url: https://harbinger-health.com/contact/
email: info@harbinger-health.com
x-apievangelist-method: derived
x-apievangelist-source: openapi/harbinger-health-wp-json-discovery.json
x-apievangelist-derived: '2026-08-04'
x-upstream-documentation: https://developer.wordpress.org/rest-api/
servers:
- url: https://harbinger-health.com/wp-json
description: Harbinger Health corporate site (WP Engine, fronted by Cloudflare)
tags:
- name: menu-items
description: WordPress menu-items resource routes.
paths:
/wp/v2/menu-items:
get:
operationId: listMenuItems
summary: GET /wp/v2/menu-items
tags:
- menu-items
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: 100
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: asc
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: menu_order
description: Sort collection by object 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
- dp-rewrite-republish
- 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: menus
in: query
required: false
schema:
type: object
description: Limit result set to items with specific terms assigned in the menus taxonomy.
- name: menus_exclude
in: query
required: false
schema:
type: object
description: Limit result set to items except those with specific terms assigned in the menus taxonomy.
- name: menu_order
in: query
required: false
schema:
type: integer
description: Limit result set to posts with a specific menu_order value.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
post:
operationId: createMenuItems
summary: POST /wp/v2/menu-items
tags:
- menu-items
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: The title for the object.
type:
type: string
enum:
- taxonomy
- post_type
- post_type_archive
- custom
default: custom
description: The family of objects originally represented, such as "post_type" or "taxonomy".
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
default: publish
description: A named status for the object.
parent:
type: integer
default: 0
minimum: 0
description: The ID for the parent of the object.
attr_title:
type: string
description: Text for the title attribute of the link element for this menu item.
classes:
type: array
items:
type: string
description: Class names for the link element of this menu item.
description:
type: string
description: The description of this menu item.
menu_order:
type: integer
default: 1
minimum: 1
description: The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
object:
type: string
description: The type of object originally represented, such as "category", "post", or "attachment".
object_id:
type: integer
default: 0
minimum: 0
description: The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
target:
type: string
enum:
- _blank
- ''
description: The target attribute of the link element for this menu item.
url:
type: string
format: uri
description: The URL to which this menu item points.
xfn:
type: array
items:
type: string
description: The XFN relationship expressed in the link of this menu item.
menus:
type: integer
description: The terms assigned to the object in the nav_menu taxonomy.
meta:
type: object
description: Meta fields.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
/wp/v2/menu-items/{id}:
get:
operationId: getMenuItemsById
summary: GET /wp/v2/menu-items/{id}
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
- 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.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
post:
operationId: createMenuItemsById
summary: POST /wp/v2/menu-items/{id}
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: The title for the object.
type:
type: string
enum:
- taxonomy
- post_type
- post_type_archive
- custom
description: The family of objects originally represented, such as "post_type" or "taxonomy".
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the object.
parent:
type: integer
minimum: 0
description: The ID for the parent of the object.
attr_title:
type: string
description: Text for the title attribute of the link element for this menu item.
classes:
type: array
items:
type: string
description: Class names for the link element of this menu item.
description:
type: string
description: The description of this menu item.
menu_order:
type: integer
minimum: 1
description: The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
object:
type: string
description: The type of object originally represented, such as "category", "post", or "attachment".
object_id:
type: integer
minimum: 0
description: The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
target:
type: string
enum:
- _blank
- ''
description: The target attribute of the link element for this menu item.
url:
type: string
format: uri
description: The URL to which this menu item points.
xfn:
type: array
items:
type: string
description: The XFN relationship expressed in the link of this menu item.
menus:
type: integer
description: The terms assigned to the object in the nav_menu taxonomy.
meta:
type: object
description: Meta fields.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
put:
operationId: replaceMenuItemsById
summary: PUT /wp/v2/menu-items/{id}
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: The title for the object.
type:
type: string
enum:
- taxonomy
- post_type
- post_type_archive
- custom
description: The family of objects originally represented, such as "post_type" or "taxonomy".
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the object.
parent:
type: integer
minimum: 0
description: The ID for the parent of the object.
attr_title:
type: string
description: Text for the title attribute of the link element for this menu item.
classes:
type: array
items:
type: string
description: Class names for the link element of this menu item.
description:
type: string
description: The description of this menu item.
menu_order:
type: integer
minimum: 1
description: The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
object:
type: string
description: The type of object originally represented, such as "category", "post", or "attachment".
object_id:
type: integer
minimum: 0
description: The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
target:
type: string
enum:
- _blank
- ''
description: The target attribute of the link element for this menu item.
url:
type: string
format: uri
description: The URL to which this menu item points.
xfn:
type: array
items:
type: string
description: The XFN relationship expressed in the link of this menu item.
menus:
type: integer
description: The terms assigned to the object in the nav_menu taxonomy.
meta:
type: object
description: Meta fields.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
patch:
operationId: updateMenuItemsById
summary: PATCH /wp/v2/menu-items/{id}
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: The title for the object.
type:
type: string
enum:
- taxonomy
- post_type
- post_type_archive
- custom
description: The family of objects originally represented, such as "post_type" or "taxonomy".
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the object.
parent:
type: integer
minimum: 0
description: The ID for the parent of the object.
attr_title:
type: string
description: Text for the title attribute of the link element for this menu item.
classes:
type: array
items:
type: string
description: Class names for the link element of this menu item.
description:
type: string
description: The description of this menu item.
menu_order:
type: integer
minimum: 1
description: The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
object:
type: string
description: The type of object originally represented, such as "category", "post", or "attachment".
object_id:
type: integer
minimum: 0
description: The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
target:
type: string
enum:
- _blank
- ''
description: The target attribute of the link element for this menu item.
url:
type: string
format: uri
description: The URL to which this menu item points.
xfn:
type: array
items:
type: string
description: The XFN relationship expressed in the link of this menu item.
menus:
type: integer
description: The terms assigned to the object in the nav_menu taxonomy.
meta:
type: object
description: Meta fields.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
delete:
operationId: deleteMenuItemsById
summary: DELETE /wp/v2/menu-items/{id}
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
- name: force
in: query
required: false
schema:
type: boolean
default: false
description: Whether to bypass Trash and force deletion.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
/wp/v2/menu-items/{id}/autosaves:
get:
operationId: getMenuItemsByIdAutosaves
summary: GET /wp/v2/menu-items/{id}/autosaves
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
- name: parent
in: query
required: false
schema:
type: integer
description: The ID for the parent of the autosave.
- 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.
responses:
'200':
description: Successful response. WordPress route discovery does not publish response schemas, so the body is described generically.
content:
application/json:
schema: {}
'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'
post:
operationId: createMenuItemsByIdAutosaves
summary: POST /wp/v2/menu-items/{id}/autosaves
tags:
- menu-items
parameters:
- name: id
in: path
required: true
description: Path segment captured by the WordPress route regex.
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
parent:
type: integer
minimum: 0
description: The ID for the parent of the object.
title:
type: string
description: The title for the object.
type:
type: string
enum:
- taxonomy
- post_type
- post_type_archive
- custom
description: The family of objects originally represented, such as "post_type" or "taxonomy".
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the object.
attr_title:
type: string
description: Text for the title attribute of the link element for this menu item.
classes:
type: array
items:
type: string
description: Class names for the link element of this menu item.
description:
type: string
description: The description of this menu item.
menu_order:
type: integer
minimum: 1
description: The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
object:
type: string
description: The type of object originally represented, such as "category", "post", or "attachment".
object_id:
type: integer
minimum: 0
description: The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
target:
type: string
enum:
- _blank
- ''
description: The target attribute of the link element for this menu item.
url:
type: string
format: uri
description: The URL to which this menu item points.
xfn:
type: array
items:
type: string
description: The XFN relationship expressed in the link of this menu item.
menus:
type: integer
description: The terms assigned to the object in the nav_menu taxonomy.
meta:
type: object
description: Meta fields.
responses:
'200':
description: Successful response. WordPress rou
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harbinger-health/refs/heads/main/openapi/harbinger-health-menu-items-api-openapi.yml