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/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
mcp
- POST
/mcp/telemetry
project
- GET
/project - GET
/project/{id}/documents - POST
/project/{id}/documents - PATCH
/project/{id}/documents/{docId}needs the write 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 - 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/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