REST API (v1)
Most teams publish through the dashboard or MCP tools. The REST API is for scripts, CI, and non-MCP integrations.Base URL:
Auth: Create a key at Dashboard → API keys, then send
https://unfurl.pubAuth: Create a key at Dashboard → API keys, then send
X-Api-Key: oodoc_… or Authorization: Bearer oodoc_… on every request.Endpoints
MCP maps to these routes:
publish_document, edit_document, get_document, update_document, delete_document, list_documents, find_document, get_workspace_info, list_feedback, resolve_feedback.
Publish body (POST /api/v1/publish)
Success (200):
Edit body (POST /api/v1/documents/:id/edit)
Matching is literal. The batch is atomic. Success (200) includes
share_url and a summary. Common errors: 422 edit_not_found / edit_ambiguous / no_change; 413 if the result exceeds 4 MB. Full semantics: edit_document.
GET /api/v1/me
Success (200): { "workspace": { "id", "name", "brand_name", "brand_tagline", "plan", "document_count", "entitlements" } }.
Limits and rate limits
- HTML size: 4 MB per document (publish, edit, and dashboard upload). Inlined base64 images are the usual way to blow this — host images at a URL instead.
- Free plan: 5 documents, 1 API key. Pro removes those caps. See Plans and billing.
- Writes: publish and edit are rate-limited per API key (default 60 requests per 60 seconds). If you are throttled, wait and retry.
- Passphrase unlock and viewer feedback submits are also rate-limited per IP / token.