Skip to content
Linq

Attachments

Read a stored attachment’s metadata and bytes: files delivered inbound and retained, and files stored for your brand. A part references one by att_id; to send a file you host, use the source_url part form.

Upload an attachment
POST/v1/attachments
Get an attachment's metadata
GET/v1/attachments/{att}
Download an attachment's bytes
GET/v1/attachments/{att}/content
ModelsExpand Collapse
AttachmentDetail object { id, mime, size, 2 more }

One stored attachment’s metadata, as stored.

id: string

Attachment id (att_…).

mime: string

The STORED MIME type; application/octet-stream when the upload declared none.

size: number

Stored size in bytes.

formatint64
status: string

Whether this attachment’s bytes are usable. ready is the only value a send, a template save or a download accepts; anything else is why one of those was refused. This read is never gated on it; it is where you look up the answer.

Today’s values are ready, pending (bytes not stored yet) and failed (they never will be). Everything POST /v1/attachments returns is ready the moment it responds: the bytes are in the request. The other two exist because an upload that mints an id BEFORE the bytes move cannot say that, and the field is here now so that shape is not a second breaking response change.

Modelled as a string rather than a closed union deliberately: the set of values can grow (a content scanner adds a verdict of its own), and a closed enum would make that addition the breaking change this field exists to avoid. Branch on ready and treat every other value as unusable-with-a-name; do not try to list them all.

name: optional string

Stored display name; absent when the upload sent no x-filename.

AttachmentCreateResponse object { id, mime, size }

The stored attachment.

id: string

Attachment id (att_…) to reference from parts.

mime: string

The STORED MIME type: the same value GET /v1/attachments/{att} reports, not an echo of the request header. It is your content-type when you sent one, application/octet-stream when you did not, and on a duplicate upload it is the type the FIRST upload of these bytes declared.

size: number

Stored size in bytes.

formatint64