Proxy an advisor message image by index (ownership-scoped).
const url = 'https://api.tradr.cloud/api/advisor/conversations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/images/1';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.tradr.cloud/api/advisor/conversations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/images/1Streams 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).
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The image bytes.
Not found
Object storage temporarily unreachable (OBJECT_UNREACHABLE).