REST API quick reference

HelpWP exposes a REST API under the namespace helpwp/v1. The full base URL is https://your-site.example/wp-json/helpwp/v1/. Authentication uses the standard WordPress REST nonce or an application password; permissions follow the role of the calling user.

Docs

MethodPathNotes
GET/docs/List published docs. Accepts s (search), count, formatted.
GET/docs/product/{slug}Docs scoped to a product term slug.
POST/docs/Create a doc. Manager role required.
GET/docs/{id}Fetch one doc.
PUT/docs/{id}Update a doc. Manager role required.
DELETE/docs/{id}/deleteDelete a doc.
POST/docs/{id}/voteUp or down vote. Body {"direction":"up"} or "down".

Tickets

MethodPathNotes
GET/tickets/List tickets visible to the current user.
POST/tickets/Create a ticket.
GET/tickets/{id}Fetch one ticket.
PUT/tickets/{id}Update meta (agent, status, priority…). Agents and managers.
DELETE/tickets/{id}/deleteMove to trash.
GET/tickets/{id}/commentsList the comment thread.
POST/tickets/{id}/commentsAdd a comment. Auto-transitions ticket status.
GET/tickets/products/List product taxonomy terms.
GET/tickets/reasons/List reason taxonomy terms.
GET/tickets/urgencies/List urgency options.

Auth

MethodPathNotes
POST/login/Start the helpwplogin flow ({email}) or complete it ({email, code}).

AI (admin only)

MethodPathNotes
POST/ai/registerRegister the site with the RAG service. Body {name, email}.
POST/ai/syncPush the latest published docs to the RAG vector store.
GET/ai/site-keyReturns the site’s current site key.
POST/ai/resendResend the AI verification email.
POST/ai/auto-responderSave auto-responder settings.

Permissions

  • Public: vote on docs.
  • Logged-in client (helpwp_user): list / read their own tickets, post comments, helpwplogin.
  • Agent (helpwp_agent): full access to all tickets, read / write docs.
  • Manager (helpwp_manager) and Administrator: everything, including AI endpoints.

Authentication examples

Using an Application Password:

curl -u "you:abcd 1234 efgh 5678" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{"subject":"Login fails","description":"Steps..."}' \
  https://your-site.example/wp-json/helpwp/v1/tickets/

From the front-end JS (already authenticated via cookies + nonce):

fetch( '/wp-json/helpwp/v1/tickets/', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'X-WP-Nonce': wpApiSettings.nonce,
    },
    body: JSON.stringify({ subject: 'Login fails', description: 'Steps...' })
} );

Filters worth knowing

  • helpwp_settings_menus – extend the settings schema (add tabs, sections, fields).
  • helpwp_product_post_types – attach the shared product taxonomy to your own custom post types.
  • helpwp_auto_status_transition_on_comment – skip the auto status flip for a specific comment.
  • helpwp_rag_site_url – point the AI features at a different RAG backend (dev / staging / self-hosted).

Was this doc helpful?

Scroll to Top