whatsusernames-sdk
v0.1.1
Published
TypeScript/JavaScript client SDK for the WhatsUsernames.link API — WhatsApp username links, QR codes, and Business Platform BSUID/webhook tools.
Maintainers
Readme
whatsusernames-sdk
TypeScript/JavaScript client for the WhatsUsernames.link API — a free, keyless REST API for WhatsApp username/phone links, QR codes, and WhatsApp Business Platform BSUID/webhook tools.
Install
npm install whatsusernames-sdkUsage
import { createClient } from "whatsusernames-sdk";
const wa = createClient();
const { link, shortLink } = await wa.usernameLink({ username: "joao.silva" });
const { link: phoneLink } = await wa.phoneLink({ phone: "351912345678" });
const qr = await wa.qr({ username: "joao.silva", format: "svg" });
// qr.body is a Uint8Array, qr.contentType is "image/svg+xml"Business Platform / BSUID
const { valid, isParent } = await wa.business.bsuid.validate({ bsuid: "US.13491208655302741918" });
const parsed = await wa.business.bsuid.parse({ bsuid: "US.13491208655302741918" });
// { countryCode: "US", id: "13491208655302741918", isParent: false }
const { valid: usernameValid, reasons } = await wa.business.username.validate({ username: "joao.silva" });
const contact = await wa.business.contact.resolve({ username: "joao.silva" });
const normalized = await wa.business.webhook.normalize(rawCloudApiWebhookPayload);Error handling
import { WhatsUsernamesApiError } from "whatsusernames-sdk";
try {
await wa.usernameLink({ username: "x" });
} catch (err) {
if (err instanceof WhatsUsernamesApiError) {
console.error(err.status, err.code, err.message);
}
}Self-hosted / local dev
const wa = createClient({ baseUrl: "http://localhost:3000" });Full API reference
See whatsusernames.link/developers and the OpenAPI 3.1 spec.
Development
npm install
npm test
npm run lint
npm run typecheck
npm run build