API reference

Read, search and publish your documents from your own tools. The same API the Workover CLI and MCP server use.

Authentication

Create a personal access token in Settings, then send it as a bearer token. Tokens start with wk_.

curl https://api.workover.io/search?q=onboarding \
  -H "Authorization: Bearer wk_your_token"

A token reaches only the endpoints listed on this page. Account security, billing and token management are session-only and no token can reach them, whatever scopes it holds. Some endpoints additionally require a scope you granted the token when you created it; those are marked below.

Endpoints

ai

  • POST/ai/checkneeds the draft scope
  • POST/ai/doc-set/draftneeds the draft scope
  • POST/ai/doc-set/planneeds the draft scope
  • POST/ai/documents/{docId}/screenshotsneeds the draft scope
  • GET/ai/documents/{docId}/verifyneeds the draft scope
  • POST/ai/documents/{docId}/verifyneeds the draft scope
  • POST/ai/draftneeds the draft scope
  • GET/ai/draft/job/{id}needs the draft scope
  • GET/ai/draft/jobsneeds the draft scope
  • POST/ai/evaluateneeds the draft scope
  • GET/ai/rules
  • POST/ai/rulesneeds the rules scope
  • DELETE/ai/rules/{id}needs the rules scope
  • PUT/ai/rules/{id}needs the rules scope
  • GET/ai/termsneeds the assist scope
  • POST/ai/toneneeds the assist scope
  • POST/ai/writingneeds the assist scope

helpscout-docs

  • POST/helpscout-docs/documents/{docId}/pushneeds the publish scope
  • POST/helpscout-docs/projects/{projectId}/importneeds the publish scope

mcp

  • POST/mcp/telemetry

media

  • GET/media/{token}

mintlify

  • GET/mintlify/documents/{docId}
  • POST/mintlify/documents/{docId}/pullneeds the publish scope
  • POST/mintlify/documents/{docId}/pushneeds the publish scope
  • POST/mintlify/projects/{projectId}/importneeds the publish scope

project

  • GET/project
  • GET/project/{id}/documents
  • POST/project/{id}/documents
  • PATCH/project/{id}/documents/{docId}needs the write scope
  • GET/project/{projectId}/verification/documents/{docId}/fixneeds the draft scope
  • POST/project/{projectId}/verification/documents/{docId}/fixneeds the draft scope
  • PATCH/project/comments/{commentId}
  • GET/project/doc/{docId}
  • GET/project/doc/{docId}/activity
  • GET/project/doc/{docId}/comments
  • POST/project/doc/{docId}/comments
  • GET/project/doc/{docId}/content
  • POST/project/doc/{docId}/contentneeds the write scope
  • PATCH/project/doc/{docId}/medianeeds the write scope
  • POST/project/doc/{docId}/media
  • GET/project/doc/{docId}/media/meta
  • GET/project/doc/{docId}/proposals
  • POST/project/doc/{docId}/propose
  • GET/project/doc/{docId}/tabs
  • POST/project/doc/{docId}/tabsneeds the write scope
  • PATCH/project/doc/{docId}/tabs/{tabId}needs the write scope
  • POST/project/doc/{docId}/tabs/{tabId}/duplicateneeds the write scope
  • PATCH/project/doc/{docId}/tabs/{tabId}/emojineeds the write scope
  • PATCH/project/doc/{docId}/tabs/{tabId}/parentneeds the write scope
  • PATCH/project/doc/{docId}/tabs/reorderneeds the write scope
  • GET/project/doc/{docId}/wp
  • PATCH/project/doc/{docId}/wpneeds the publish scope
  • POST/project/doc/{docId}/wp/connect-postneeds the publish scope
  • POST/project/doc/{docId}/wp/doc-termsneeds the publish scope
  • POST/project/doc/{docId}/wp/link-check
  • POST/project/doc/{docId}/wp/medianeeds the publish scope
  • POST/project/doc/{docId}/wp/patternsneeds the publish scope
  • POST/project/doc/{docId}/wp/publishneeds the publish scope
  • POST/project/doc/{docId}/wp/pullneeds the publish scope
  • POST/project/doc/{docId}/wp/pushneeds the publish scope
  • DELETE/project/doc/{docId}/wp/scheduleneeds the publish scope
  • GET/project/doc/{docId}/wp/schedule
  • POST/project/doc/{docId}/wp/scheduleneeds the publish scope
  • GET/project/doc/{docId}/wp/write
  • GET/project/doc/{documentId}/translations
  • POST/project/doc/{projectId}/wp-importneeds the publish scope
  • POST/project/doc/{projectId}/wp/termsneeds the publish scope
  • GET/project/doc/by-handle/{publicId}
  • GET/project/doc/link-preview/{publicId}
  • GET/project/doc/translations/languages

search

  • GET/search/documents
  • GET/search/recent

workflows

  • POST/workflows/doc/{docId}/stateneeds the read scope
  • GET/workflows/project/{projectId}/statusesneeds the read scope

writing

  • POST/writing/citeneeds the assist scope
  • GET/writing/contextneeds the assist scope
  • GET/writing/dictionaryneeds the assist scope
  • POST/writing/dictionaryneeds the assist scope
  • POST/writing/eventsneeds the assist scope
  • GET/writing/mutesneeds the assist scope
  • POST/writing/mutesneeds the assist scope
  • GET/writing/settingsneeds the assist scope

OpenAPI specification

This page is generated from the specification below, so it cannot describe an endpoint that does not exist. Point a client generator at it directly.

https://api.workover.io/openapi.json