API v2 Get Task drops synced-block content from description, text_content and markdown_description
Pete Jackson
We just started using synced content (a great feature!), but the REST API has no way to read it. Any integration, export or backup built on Get Task silently loses synced text and images.
Endpoint
GET /api/v2/task/{task_id}
GET /api/v2/task/{task_id}?include_markdown_description=true
Problem
When a task description contains a synced block, the response carries only a [sync-block:<uuid>] placeholder in description and text_content. markdown_description drops the block entirely, text and images included, with nothing left in its place. This happens in the task that created the block and in every task that shows it. No field returns the block's content or its source, and no documented endpoint resolves a sync-block UUID.
Steps to reproduce
- In task A, add a heading with a synced block under it containing text and a pasted image.
- Show that block in task B's description.
- Call GET /api/v2/task/{A}?include_markdown_description=true, then the same for B and once more for A without the flag.
Observed
- description and text_content are identical and contain [sync-block:<uuid>] at the block's position. The same UUID appears in A and B.
- markdown_description skips straight past the block. In A, the heading is followed directly by the next one (e.g. "# Goals\n\n# Implementation Plan").
- include_markdown_description=true adds only the markdown_description key. No other field changes.
- No top-level key or nested path in the response contains "sync" or "block".
- Images pasted into the block appear in neither task's markdown. They're only in the uploading task's attachments, with nothing tying them to the block or its position.
Expected (any one would do)
- markdown_description renders synced content inline, as the UI does, with images as
links like other inline images.
- The response includes a synced_blocks array: UUID, source task/doc, and the content as markdown.
- An endpoint resolves a sync-block UUID to its content and source.
Impact
markdown_description gives no sign that content is missing, so consumers can't detect the gap. The only way to notice is to scan text_content for [sync-block: markers and compare against the UI. The Get Task reference doesn't mention synced blocks, so integrators have no documented way to handle them. The official MCP server's clickup_get_task inherits the same gap.
Log In