GET
/v1/admin/tickets/{ticket}/messages/{message}/imageThe picture itself, streamed back on your token. Take the path from the
image_url of a message in the conversation
rather than building it.
Not JSON: the body is the picture. A download that arrived base64 inside an envelope would cost a third more bandwidth and a full copy in memory on a phone.
Every picture is stored re-encoded as WebP, at most 1600 pixels on its longest
side, whatever was sent. So Content-Type is what is stored, which is not
always what the name in Content-Disposition suggests. Read the type from the
header, never from the name.
Needs a firm. Our own staff name one with the Propper-Workspace header.
Request
curl "https://api.proppertrading.com/v1/admin/tickets/tkt_zyy8t2dwma2nprbt/messages/tmsg_ebt6zayzphz6vras/image" \
-H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
-H "Propper-Workspace: acme" \
-o picture.webp
Response
HTTP/1.1 200 OK
Content-Type: image/webp
Content-Length: 84
Content-Disposition: inline; filename=red.png
X-Content-Type-Options: nosniff
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | workspace_required | Asked by our own staff without naming a firm |
| 401 | invalid_token | Not a token, or the secret does not match |
| 401 | revoked_token | Signed out here or from another device |
| 401 | expired_token | Ninety days without use, or a set expiry passed |
| 403 | admin_access_required | This account no longer helps run the environment |
| 403 | insufficient_scope | This device does not hold admin:read |
| 403 | workspace_not_permitted | The Propper-Workspace header names an environment this account cannot act in |
| 403 | forbidden | Without view_tickets |
| 404 | resource_not_found | No ticket with that id in this firm, a message of another ticket, a message without a picture, or a picture no longer stored |