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/doc-set/draftneeds the draft scope
  • POST/ai/doc-set/planneeds 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

project

  • GET/project
  • GET/project/{id}/documents
  • POST/project/{id}/documents
  • GET/project/doc/{docId}
  • POST/project/doc/{docId}/media
  • POST/project/doc/{docId}/propose
  • 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/medianeeds 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/{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

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