When fetching Confluence page content via the REST API (e.g. GET /wiki/api/v2/pages/{id}?body-format=storage or markdown), any images or diagrams embedded in the page are returned as blob URLs in the form:
blob:https://media.staging.atl-paas.net/?type=file&localId=null&id=...&collection=contentId-...
These URLs are not resolvable outside an authenticated browser session. They return nothing when called programmatically, even with a valid API token. The actual binary content of the attachment is effectively inaccessible via the API.
Impact
This breaks any automation or AI tooling that reads Confluence pages and needs to process embedded images - architecture diagrams, flow charts, screenshots, etc. The text content of the page is available, but the visual content is silently lost.
Expected behaviour
The API should return either:
- A signed, time-limited URL pointing to the actual media content (similar to how other cloud storage providers handle this), or
- A direct reference to the attachment that can be resolved via the existing Confluence Attachments API (/wiki/rest/api/content/{id}/child/attachment) with the same OAuth scopes used to read the page.
Steps to reproduce
1. Embed any image or diagram in a Confluence page.
2. Fetch the page content via the REST API with any body-format (storage, view, markdown).
3. Observe that image src values are blob:https://media.staging.atl-paas.net/... URLs.
4. Attempt to resolve those URLs programmatically - they return no content.
Environment
- Confluence REST API v2
- Affects all API consumers and MCP integrations
Workaround
None currently. The only way to access the images is to open the page in an authenticated browser session.
Has anyone found a workaround or knows if this is on the roadmap?