Documentation Index
Fetch the complete documentation index at: https://docs.kapso.ai/llms.txt
Use this file to discover all available pages before exploring further.
const imageBlob = new Blob([/* binary data */], { type: 'image/png' });
const uploadResult = await client.media.upload({
phoneNumberId: '123',
type: 'image',
file: imageBlob,
fileName: 'photo.png'
});
console.log(uploadResult.id); // Media ID
await client.messages.sendImage({
phoneNumberId: '123',
to: '56961567267',
image: { id: uploadResult.id, caption: 'Uploaded image' }
});
const metadata = await client.media.get({
mediaId: 'MEDIA_ID',
phoneNumberId: '123' // Required when using Kapso proxy
});
await client.media.delete({
mediaId: 'MEDIA_ID',
phoneNumberId: '123' // Required when using Kapso proxy
});
URL‑first with Kapso (recommended):
import { buildKapsoMessageFields } from '@kapso/whatsapp-cloud-api';
const fields = buildKapsoMessageFields('media_url');
const page = await client.messages.listByConversation({
phoneNumberId: '123',
conversationId: 'conv-123',
fields
});
const msg = page.data.find(m => m.type === 'image');
const src = msg?.kapso?.mediaUrl ?? msg?.image?.link; // render this URL
Raw bytes fallback (works for Meta and Kapso):
// Returns Blob in browsers when as: 'blob'
const blob = await client.media.download({ mediaId: 'MEDIA_ID', phoneNumberId: '123', as: 'blob' });
const src = URL.createObjectURL(blob);
Notes:
- The SDK downloads from WhatsApp CDNs without auth headers and adds auth only for Kapso hosts. No special configuration is needed.
- Kapso mirrors outbound media shortly after send; inbound media is available immediately.