{"_id":"d-api-sdk","_rev":"5-860e1ce40c94edaa03264e66b24d64a6","name":"d-api-sdk","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"d-api-sdk","version":"1.0.0","keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"author":"","license":"MIT","_id":"d-api-sdk@1.0.0","maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"dist":{"shasum":"21f968b16d6092cfbefeb24b6435de6d04959b00","tarball":"https://registry.npmjs.org/d-api-sdk/-/d-api-sdk-1.0.0.tgz","fileCount":6,"integrity":"sha512-XxuAyc6v/I4I9l4oqYLSh6o3A8N1TdUNxWrv9m2utYMOq0KLIqBkCO1WZOAigQz6MWGjAXe4rHZrNAwb4VPL6Q==","signatures":[{"sig":"MEUCIFmoOuwwYjeyEv6hsPAwyDw23jtY/mlXSjpEcCK/9npjAiEAppZ3AYDsMS66WPMPqSiiqcpfM0gLsAGzoeSAeRZhzrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117994},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"23fd696b898e835e0cd22622b9408e23b101b1a1","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"joaoarturdev","email":"joao@joaoartur.com"},"_npmVersion":"10.8.2","description":"Complete NodeJS SDK for D-API WhatsApp integration","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/d-api-sdk_1.0.0_1771248588674_0.24992532569150505","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"d-api-sdk","version":"1.0.1","keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"author":"","license":"MIT","_id":"d-api-sdk@1.0.1","maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"dist":{"shasum":"c9013add096d35458cb4330fe4ef33d263bc5359","tarball":"https://registry.npmjs.org/d-api-sdk/-/d-api-sdk-1.0.1.tgz","fileCount":6,"integrity":"sha512-zLyb2yIBkgg+ac73Jxmc5x9sYvCHmaeoY4qdOJLhZMysQ57c2BjrM00S2prgoR5F8f/NTOedLQvpU/Q3fyqfKA==","signatures":[{"sig":"MEUCIAtGRooypcj7X9DdC88HbFolySCem7POEGYcfv7JmPg2AiEApTSTm0dzlM9chnGvikvaYndxVtX/YIdfPCIaCpV/hY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117994},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"330f5b50f636e6bb33277abd5f9a084a774673d9","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"joaoarturdev","email":"joao@joaoartur.com"},"_npmVersion":"10.8.2","description":"Complete NodeJS SDK for D-API WhatsApp integration","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/d-api-sdk_1.0.1_1771257460445_0.5161998405286177","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"d-api-sdk","version":"1.1.0","keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"author":"","license":"MIT","_id":"d-api-sdk@1.1.0","maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"dist":{"shasum":"ae917573f9136edd25d5039b37a5ee46e1c32451","tarball":"https://registry.npmjs.org/d-api-sdk/-/d-api-sdk-1.1.0.tgz","fileCount":11,"integrity":"sha512-+XESbJpDK2JVwT+mPnBYM4p6h753QxrxBmqxPNKaaxKc/viPyZ3TxEd5XhcwHLe81vxVlEvUiCCnFmA4b88l4A==","signatures":[{"sig":"MEYCIQC6HYSUHzGQxh2r7bJitSHwiN/IklptEDPdJzSRkBcgugIhALriCEnpt1+eC1ZBu0ZzrT2BAqLKoUaXs4SV7TIlngUz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144589},"main":"dist/index.js","_from":"file:d-api-sdk-1.1.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./connect":{"types":"./dist/connect.d.ts","import":"./dist/connect.mjs","require":"./dist/connect.js"}},"scripts":{"dev":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","test":"bun test","build":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"joaoarturdev","email":"joao@joaoartur.com"},"_resolved":"/private/var/folders/n6/d4wt9w5d0zb2zwts62rql57r0000gn/T/685a20d58daf982d10dbb63e857c2425/d-api-sdk-1.1.0.tgz","_integrity":"sha512-+XESbJpDK2JVwT+mPnBYM4p6h753QxrxBmqxPNKaaxKc/viPyZ3TxEd5XhcwHLe81vxVlEvUiCCnFmA4b88l4A==","_npmVersion":"10.9.4","description":"Complete NodeJS SDK for D-API WhatsApp integration","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","bun-types":"^1.3.14","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/d-api-sdk_1.1.0_1784772509518_0.25620704572759845","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"d-api-sdk","version":"1.2.0","keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"author":"","license":"MIT","_id":"d-api-sdk@1.2.0","maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"dist":{"shasum":"24bf5887efbf7e060b98bc077759f33ef0c02519","tarball":"https://registry.npmjs.org/d-api-sdk/-/d-api-sdk-1.2.0.tgz","fileCount":11,"integrity":"sha512-HhtX4fMPOLCAmXZ9q68LebKZxDCG7nd6w0aOvAOTu+SXB3d6bXZbisqz51N0U+P98FAppi7qNVa4leuTdoQCjQ==","signatures":[{"sig":"MEUCIQDKZZ0zD1AZA2yWWgV4xqBWltSTCRqgieAq6QJB3Ca99wIgTyysezn6GhccmZTqCDQLpgXAMf+wlXGlFAM6EBmRj2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150302},"main":"dist/index.js","_from":"file:d-api-sdk-1.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./connect":{"types":"./dist/connect.d.ts","import":"./dist/connect.mjs","require":"./dist/connect.js"}},"scripts":{"dev":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","test":"bun test","build":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"joaoarturdev","email":"joao@joaoartur.com"},"_resolved":"/private/var/folders/n6/d4wt9w5d0zb2zwts62rql57r0000gn/T/7ce9ea230fe2917f91f1be3c58867dae/d-api-sdk-1.2.0.tgz","_integrity":"sha512-HhtX4fMPOLCAmXZ9q68LebKZxDCG7nd6w0aOvAOTu+SXB3d6bXZbisqz51N0U+P98FAppi7qNVa4leuTdoQCjQ==","_npmVersion":"10.9.4","description":"Complete NodeJS SDK for D-API WhatsApp integration","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","bun-types":"^1.3.14","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/d-api-sdk_1.2.0_1785448429059_0.7236398151673649","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"d-api-sdk","version":"1.3.0","description":"Complete NodeJS SDK for D-API WhatsApp integration","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./connect":{"types":"./dist/connect.d.ts","import":"./dist/connect.mjs","require":"./dist/connect.js"}},"keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"author":"","license":"MIT","devDependencies":{"@types/node":"^22.0.0","bun-types":"^1.3.14","tsup":"^8.0.0","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"sideEffects":false,"scripts":{"build":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --clean","dev":"tsup src/index.ts src/connect.ts --format cjs,esm --dts --watch","test":"bun test","typecheck":"tsc --noEmit","lint":"eslint src --ext .ts"},"_id":"d-api-sdk@1.3.0","_integrity":"sha512-+xelDGbjfKS+xAXD34c5CJc49a/qameUJ9coWXqHLJwoNEQ0hghk5RTrbY45IWcVcS67lwyn+rgSUYTW1XhN4w==","_resolved":"/private/var/folders/n6/d4wt9w5d0zb2zwts62rql57r0000gn/T/78cc4fc574baadc22a9d5ef16660277e/d-api-sdk-1.3.0.tgz","_from":"file:d-api-sdk-1.3.0.tgz","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-+xelDGbjfKS+xAXD34c5CJc49a/qameUJ9coWXqHLJwoNEQ0hghk5RTrbY45IWcVcS67lwyn+rgSUYTW1XhN4w==","shasum":"b544338c159e42d021cd6b2fb5d8a989033a0184","tarball":"https://registry.npmjs.org/d-api-sdk/-/d-api-sdk-1.3.0.tgz","fileCount":11,"unpackedSize":156523,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDueTE/xDOT2/RAm3duHHNeKoU4/11yHblz1G8iIpxkHAiBsm5ULyHNK6lggNdyk47op7uvEmxsAoWzlDU7u/36Bww=="}]},"_npmUser":{"name":"joaoarturdev","email":"joao@joaoartur.com"},"directories":{},"maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/d-api-sdk_1.3.0_1785975736255_0.43471325002809147"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-16T13:29:48.673Z","modified":"2026-08-06T00:22:16.602Z","1.0.0":"2026-02-16T13:29:48.807Z","1.0.1":"2026-02-16T15:57:40.595Z","1.1.0":"2026-07-23T02:08:29.651Z","1.2.0":"2026-07-30T21:53:49.195Z","1.3.0":"2026-08-06T00:22:16.385Z"},"license":"MIT","keywords":["whatsapp","d-api","whatsapp-api","whatsapp-bot","whatsapp-sdk","messaging"],"description":"Complete NodeJS SDK for D-API WhatsApp integration","maintainers":[{"name":"joaoarturdev","email":"joao@joaoartur.com"}],"readme":"# D-API Lib\n\nComplete NodeJS SDK for D-API WhatsApp integration. Works on both server (Node.js) and client (browser) environments.\n\n## Installation\n\n```bash\nnpm install d-api-sdk\n# or\nyarn add d-api-sdk\n# or\npnpm add d-api-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { DApi } from 'd-api-sdk';\n\nconst dapi = new DApi({\n  apiKey: 'your-api-key',\n  baseUrl: 'https://api.d-api.cloud', // optional\n});\n\n// Create a session\nconst session = await dapi.sessions.create({\n  sessionId: 'my-session',\n  connectionMode: 'qr',\n});\n\n// Get QR code\nconst qr = await dapi.sessions.getQRCode('my-session');\nconsole.log(qr.qrCodeImage); // base64 image\n\n// Send a text message\nawait dapi.messages.sendText({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  text: 'Hello from D-API!',\n});\n```\n\n## WhatsApp API Oficial: connect (browser)\n\n`d-api-sdk/connect` is the browser-only entry that connects a customer's **official**\nnumber (Cloud API) from inside your own SaaS. It opens D-API's hosted Embedded Signup\npopup and resolves with the provisioned connection — your domain never has to be\nregistered with Meta.\n\n```typescript\nimport { DApiConnect } from 'd-api-sdk/connect';\n\nconst connect = new DApiConnect({ publishableKey: 'pk_live_…' });\n\nconst result = await connect.start({\n  mode: 'standard',              // or 'coexistence' (keep the WhatsApp Business App)\n  webhookUrl: 'https://your-saas.com/hooks/dapi',\n  webhookMode: 'normalized',     // default; or 'meta_passthrough'\n});\n```\n\n### `webhookMode`\n\n| value | payload delivered to `webhookUrl` |\n|---|---|\n| `normalized` (default) | D-API's canonical event — identical to an unofficial connection, so one handler serves both |\n| `meta_passthrough` | Meta's raw Cloud API webhook body, untouched |\n\nIt can be changed later with `PATCH /api/v1/connections/cloud-api/:id`.\n\n### Result\n\n```typescript\n{\n  connectionId: string;\n  phoneNumber: string | null;\n  status: string;\n  accessToken?: string;          // the connection's Meta token, decrypted\n  accessTokenKind?: 'permanent' | 'long_lived' | 'short_lived' | 'unknown';\n  accessTokenLabel?: string;     // pt-BR one-liner, safe to display\n  accessTokenExpiresAt?: string | null; // ISO-8601, null when permanent\n}\n```\n\nEmbedded Signup issues a **permanent** token (`accessTokenKind: 'permanent'`,\n`accessTokenExpiresAt: null`), which is the normal case here.\n\n> ⚠️ `accessToken` is a **secret** — it can send messages and manage the WABA. Forward\n> it to your backend; never log it or persist it in the browser. If you'd rather it\n> never touch the browser, ignore the field and fetch it server-side from\n> `GET /api/v1/connections/cloud-api/:id/access-token` with your secret API key.\n\n## Modules\n\n### Sessions\n\nManage WhatsApp sessions.\n\n```typescript\n// Create session\nawait dapi.sessions.create({\n  sessionId: 'my-session',\n  connectionMode: 'qr', // or 'pair'\n  webhookUrl: 'https://example.com/webhook',\n});\n\n// List sessions\nconst sessions = await dapi.sessions.list();\n\n// Get session\nconst session = await dapi.sessions.get('my-session');\n\n// Get QR code\nconst qr = await dapi.sessions.getQRCode('my-session');\n\n// Get pair code (for phone number pairing)\nconst pair = await dapi.sessions.getPairCode('my-session');\n\n// Connect/reconnect session\nawait dapi.sessions.connect('my-session');\n\n// Disconnect session\nawait dapi.sessions.disconnect('my-session');\n\n// Delete session\nawait dapi.sessions.delete('my-session');\n\n// Update webhook\nawait dapi.sessions.updateWebhook('my-session', {\n  webhookUrl: 'https://new-webhook.com',\n});\n\n// Update ignore settings\nawait dapi.sessions.updateIgnoreSettings('my-session', {\n  ignoreGroups: true,\n  ignoreStatus: true,\n});\n```\n\n### Messages\n\nSend various types of messages.\n\n```typescript\n// Text message\nawait dapi.messages.sendText({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  text: 'Hello!',\n});\n\n// Image\nawait dapi.messages.sendImage({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  image: 'https://example.com/image.jpg',\n  caption: 'Check this out!',\n});\n\n// Video\nawait dapi.messages.sendVideo({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  video: 'https://example.com/video.mp4',\n  caption: 'Video caption',\n  ptv: false, // video note\n  gifPlayback: false,\n});\n\n// Audio / Voice note\nawait dapi.messages.sendAudio({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  audio: 'https://example.com/audio.mp3',\n  ptt: true, // voice note\n});\n\n// Document\nawait dapi.messages.sendDocument({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  document: 'https://example.com/file.pdf',\n  fileName: 'document.pdf',\n  mimetype: 'application/pdf',\n});\n\n// Location\nawait dapi.messages.sendLocation({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  latitude: -23.5505,\n  longitude: -46.6333,\n  name: 'Sao Paulo',\n  address: 'Sao Paulo, Brazil',\n});\n\n// Contact\nawait dapi.messages.sendContact({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  contactName: 'John Doe',\n  contactPhone: '5511888888888',\n});\n\n// Poll\nawait dapi.messages.sendPoll({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  question: 'What is your favorite color?',\n  options: ['Red', 'Blue', 'Green'],\n  multipleAnswers: false,\n});\n\n// Reaction\nawait dapi.messages.sendReaction({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  messageId: 'BAE5C3F2E3D4',\n  emoji: '👍',\n});\n\n// Album\nawait dapi.messages.sendAlbum({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  media: [\n    { type: 'image', url: 'https://example.com/1.jpg' },\n    { type: 'image', url: 'https://example.com/2.jpg' },\n  ],\n});\n\n// Edit message\nawait dapi.messages.edit('messageId', {\n  sessionId: 'my-session',\n  to: '5511999999999',\n  text: 'Edited message',\n});\n```\n\n### Interactive Messages\n\nSend interactive messages (lists, carousels, templates).\n\n```typescript\n// List message\nawait dapi.interactive.sendList({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  title: 'Menu',\n  description: 'Choose an option',\n  buttonText: 'Options',\n  sections: [\n    {\n      title: 'Products',\n      rows: [\n        { rowId: '1', title: 'Product 1', description: 'Description 1' },\n        { rowId: '2', title: 'Product 2', description: 'Description 2' },\n      ],\n    },\n  ],\n});\n\n// Carousel\nawait dapi.interactive.sendCarousel({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  cards: [\n    {\n      header: { type: 'image', media: 'https://example.com/1.jpg' },\n      body: 'Card 1 body',\n      footer: 'Card 1 footer',\n      buttons: [\n        { type: 'quick_reply', title: 'Select', id: 'select-1' },\n      ],\n    },\n  ],\n});\n\n// Template with CTA buttons\nawait dapi.interactive.sendTemplate({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  title: 'Welcome',\n  content: 'Welcome to our service!',\n  buttons: [\n    { type: 'url', title: 'Visit site', url: 'https://example.com' },\n    { type: 'call', title: 'Call us', phone: '5511999999999' },\n  ],\n});\n\n// PIX payment button\nawait dapi.interactive.sendPix({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  content: 'Pay with PIX',\n  pixKey: 'your-pix-key',\n  pixAmount: 100.0,\n});\n```\n\n### Groups\n\nManage WhatsApp groups.\n\n```typescript\n// List groups\nconst groups = await dapi.groups.list({\n  sessionId: 'my-session',\n  participants: true,\n});\n\n// Create group\nawait dapi.groups.create({\n  sessionId: 'my-session',\n  name: 'My Group',\n  participants: ['5511999999999', '5511888888888'],\n});\n\n// Add participants\nawait dapi.groups.manageParticipants('groupId', {\n  sessionId: 'my-session',\n  participants: ['5511777777777'],\n  action: 'add',\n});\n\n// Remove participants\nawait dapi.groups.manageParticipants('groupId', {\n  sessionId: 'my-session',\n  participants: ['5511777777777'],\n  action: 'remove',\n});\n\n// Promote to admin\nawait dapi.groups.manageParticipants('groupId', {\n  sessionId: 'my-session',\n  participants: ['5511777777777'],\n  action: 'promote',\n});\n\n// Set group settings\nawait dapi.groups.setSettings('groupId', {\n  sessionId: 'my-session',\n  announce: true, // only admins can send messages\n  locked: true, // only admins can edit info\n});\n\n// Get invite link\nconst invite = await dapi.groups.getInviteLink('groupId', 'my-session');\n```\n\n### Chats\n\nManage chats and messages.\n\n```typescript\n// List chats\nconst chats = await dapi.chats.list({\n  sessionId: 'my-session',\n  limit: 20,\n  page: 1,\n});\n\n// List messages\nconst messages = await dapi.chats.listMessages('chatId', {\n  sessionId: 'my-session',\n  limit: 50,\n});\n\n// Send typing presence\nawait dapi.chats.sendPresence({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  presence: 'typing',\n  durationMs: 3000,\n});\n\n// Mark as read\nawait dapi.chats.markAsRead({\n  sessionId: 'my-session',\n  to: '5511999999999',\n  messageIds: ['msg1', 'msg2'],\n});\n\n// Delete message\nawait dapi.chats.deleteMessage('messageId', {\n  sessionId: 'my-session',\n  to: '5511999999999',\n  forEveryone: true,\n});\n```\n\n### Contacts\n\nManage contacts and blocklist.\n\n```typescript\n// List contacts\nconst contacts = await dapi.contacts.list({\n  sessionId: 'my-session',\n});\n\n// Check if numbers are on WhatsApp\nconst results = await dapi.contacts.checkNumbers({\n  sessionId: 'my-session',\n  numbers: ['5511999999999', '5511888888888'],\n});\n\n// Get avatar\nconst avatar = await dapi.contacts.getAvatar('5511999999999', {\n  sessionId: 'my-session',\n});\n\n// Block contact\nawait dapi.contacts.updateBlocklist({\n  sessionId: 'my-session',\n  phone: '5511999999999',\n  action: 'block',\n});\n\n// Get blocklist\nconst blocklist = await dapi.contacts.getBlocklist('my-session');\n```\n\n### Labels\n\nManage WhatsApp labels.\n\n```typescript\n// List labels\nconst labels = await dapi.labels.list({\n  sessionId: 'my-session',\n});\n\n// Create/update label\nawait dapi.labels.upsert({\n  sessionId: 'my-session',\n  label_id: 1,\n  name: 'VIP',\n  color: 0,\n});\n\n// Attach label to chat\nawait dapi.labels.attach({\n  sessionId: 'my-session',\n  phone: '5511999999999',\n  label_id: 1,\n  labeled: true,\n});\n```\n\n### Media\n\nDownload media files.\n\n```typescript\n// Download media (returns S3 URL or base64)\nconst media = await dapi.media.download({\n  sessionId: 'my-session',\n  media_key: 'media-key-from-webhook',\n  mimetype: 'image/jpeg',\n  url: 'whatsapp-media-url',\n  base64: false, // set true for base64 response\n});\n```\n\n### History\n\nSync message history.\n\n```typescript\n// Full history sync\nawait dapi.history.fullSync({\n  sessionId: 'my-session',\n});\n\n// On-demand sync\nawait dapi.history.onDemandSync({\n  sessionId: 'my-session',\n  count: 100, // number of messages\n});\n```\n\n### Integrations\n\nManage S3 and RabbitMQ integrations.\n\n```typescript\n// Create S3 integration\nawait dapi.integrations.create({\n  integrationName: 'My S3',\n  integrationType: 'S3',\n  config: {\n    endpoint: 'https://s3.amazonaws.com',\n    region: 'us-east-1',\n    accessKeyId: 'access-key',\n    secretAccessKey: 'secret-key',\n    bucket: 'my-bucket',\n  },\n});\n\n// Test S3 connection\nawait dapi.integrations.testS3Connection({\n  endpoint: 'https://s3.amazonaws.com',\n  region: 'us-east-1',\n  accessKeyId: 'access-key',\n  secretAccessKey: 'secret-key',\n  bucket: 'my-bucket',\n});\n\n// Test RabbitMQ connection\nawait dapi.integrations.testRabbitMQConnection({\n  host: 'localhost',\n  port: 5672,\n  username: 'guest',\n  password: 'guest',\n});\n```\n\n## Configuration\n\n```typescript\nconst dapi = new DApi({\n  apiKey: 'your-api-key', // required\n  baseUrl: 'https://api.d-api.cloud', // optional, default\n  timeout: 30000, // optional, request timeout in ms\n});\n```\n\n## Error Handling\n\n```typescript\nimport { DApi, DApiError } from 'd-api-sdk';\n\ntry {\n  await dapi.messages.sendText({ ... });\n} catch (error) {\n  if ((error as DApiError).status === 404) {\n    console.error('Session not found');\n  } else {\n    console.error('Error:', error);\n  }\n}\n```\n\n## TypeScript Support\n\nThis library is written in TypeScript and includes full type definitions for all methods and responses.\n\n```typescript\nimport type {\n  Session,\n  SendTextOptions,\n  MessageResponse,\n  Group,\n  Chat,\n  Contact,\n} from 'd-api-sdk';\n```\n\n## Browser Support\n\nThis library works in both Node.js and browser environments. It uses the native `fetch` API which is available in modern browsers and Node.js 18+.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}