EaserixDocs
DevelopersAPI referenceTasksAttachments

Stream an attachment's bytes (session-checked)

Streams the file itself to an authenticated caller who can read the issue it hangs off — the attachment's issue, or the issue its comment sits on: the caller's active workspace, then a team they may read (EAS-267). The web editor loads images through this route into blob: URLs, so no URL that opens a file on its own has to leave the service. Everything out of reach is a 404, never a 403 — another workspace, another team's file, a deleted attachment, an orphan whose parent is gone — so the response never confirms that an id names a real file. Inline (with the stored image type) only for verified raster images; every other file is served as a download under its own filename. The response is `private, no-store`, `no-referrer`, `nosniff`, and carries `Content-Security-Policy: default-src 'none'; sandbox`. Streams are bounded: a deadline per stream sized to the file (30 s plus one second per 128 KiB), at most 12 concurrent streams per caller and 128 overall. A request past a cap waits up to 10 seconds for a slot, then gets 429 with Retry-After. 501 when storage is not configured; 502 when storage cannot be read.

View as Markdown
GET
/v1/attachments/{id}/content
AuthorizationBearer <token>

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/octet-stream

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/attachments/497f6eca-6276-4993-bfeb-53cbbbba6f08/content"
Empty