# REST API Reference — Dock Editor

36 HTTP handlers across 26 route files.

Authentication: `x-api-key: <token>` header required on all routes.
Content-Type: `application/json` for write operations.
Rate limits: read 120/min, write 60/min.

## REST API

These tools correspond 1:1 to REST endpoints at `/api/d/*`. Use whichever
interface your client supports:

| Tool | REST Equivalent |
|------|-----------------|
| list_documents | `GET /api/d` |
| read_document | `GET /api/d/{id}` or `GET /api/d/{id}?format=nodes` |
| create_document | `POST /api/d` |
| write_document | `PATCH /api/d/{id}` |
| delete_document | `DELETE /api/d/{id}` |
| duplicate_document | `POST /api/d/{id}/duplicate` |
| publish_document | `POST /api/d/{id}/publish` (requires a non-empty title; returns `400` "Add a title before publishing" if untitled) |
| unpublish_document | `DELETE /api/d/{id}/publish` |
| suggest_edits | `PATCH /api/d/{id}` with `body.mode = 'suggest_replace'` (add `body.nodeId` or `body.nodeIndex` for scoping) |
| import_web_page | `POST /api/d/import-url` |
| move_document | `PATCH /api/d/{id}/move` |
| update_document_settings | `PATCH /api/d/{id}` with `body.settings` (no `body.content`) |
| list_versions | `GET /api/d/{id}/versions` |
| read_version | `GET /api/d/{id}/versions/{vid}` |
| list_folders | `GET /api/d/folders` |
| create_folder | `POST /api/d/folders` |
| update_folder | `PATCH /api/d/folders/{folderId}` |
| delete_folder | `DELETE /api/d/folders/{folderId}` |
| list_suggestions | `GET /api/d/{id}/suggestions` |
| accept_suggestion | `POST /api/d/{id}/suggestions/{sid}/accept` |
| reject_suggestion | `DELETE /api/d/{id}/suggestions/{sid}` |
| list_user_prompts | `GET /api/d/prompts` |
| get_user_prompt | `GET /api/d/prompts/{promptId}` |
| add_citation | `POST /api/d/{id}/cite` |
| search_citations | `GET /api/d/cite/search?q=...` |
| list_citations | `GET /api/d/{id}/cite` |
| remove_citation | `DELETE /api/d/{id}/cite/{cid}` |
| citation_library_list | `GET /api/d/citations` |
| citation_library_save | `POST /api/d/citations` |
| citation_library_get | `GET /api/d/citations/{citationId}` |
| citation_library_search | `GET /api/d/citations/search?q=...` |
| citation_library_delete | `DELETE /api/d/citations/{citationId}` |
| citation_format | `POST /api/d/citations/format` |
| citation_collection_list | `GET /api/d/citation-collections` |
| citation_collection_create | `POST /api/d/citation-collections` |
| citation_collection_add | `POST /api/d/citation-collections/{collectionId}/citations` |
| citation_collection_remove | `DELETE /api/d/citation-collections/{collectionId}/citations/{citationId}` |
| citation_collection_delete | `DELETE /api/d/citation-collections/{collectionId}` |

The same document operations are available through both the MCP tools and the REST API.
The CLI (`npx agentdock-cli`) wraps the REST endpoints.
