Skip to content

Proxy an advisor message image by index (ownership-scoped).

GET
/api/advisor/conversations/{conversationId}/messages/{messageId}/images/{index}
curl --request GET \
--url https://api.tradr.cloud/api/advisor/conversations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/images/1

Streams the bytes of the image content-part at index on a message the authenticated user owns. Object access is proxy-through-API (D1) — there are NO presigned URLs and the object-storage key is resolved server-side, never appearing in the URL or any response (no IDOR leak — REQ-2.4). Side-effect-free. A missing/not-owned conversation or message, an out-of-range or non-image index, an unrecoverable marker, and a genuinely-absent object all return the identical 404 (no existence oracle). A pointer image is fetched from object storage and returned with its stored Content-Type; an inline image is decoded from base64. Both carry Cache-Control: private, max-age=300. A transient object-store outage returns 503 (OBJECT_UNREACHABLE).

conversationId
required
string format: uuid
messageId
required
string format: uuid
index
required
integer

The image bytes.

string format: binary

Not found

Object storage temporarily unreachable (OBJECT_UNREACHABLE).