TextPart

{"type": "text", "text": "UTF-8 text content"}
Advertisement

FilePart — inline

{"type": "file", "file": {
  "name": "image.png",
  "mimeType": "image/png",
  "bytes": "iVBORw0KGgo..."
}}

Base64-encoded. Server decodes on receipt. Larger files should use uri instead.

Advertisement

FilePart — reference

{"type": "file", "file": {
  "name": "video.mp4",
  "mimeType": "video/mp4",
  "uri": "https://cdn.example.com/uploads/abc.mp4"
}}

Client uploads separately; sends reference. Reference must be fetchable by server (auth propagation).