@kraiter/sdk
TypeScript SDK for the Kraiter email platform. A thin, no-magic client with no hidden retries and no client-side state.
Installation
npm install @kraiter/sdk
Quick start
import { Mailer } from "@kraiter/sdk";
const mailer = new Mailer({
apiKey: process.env.KRAITER_API_KEY,
});
const contact = await mailer.contacts.create({
email: "user@example.com",
properties: { firstName: "John" },
});
await mailer.events.track({
contactId: contact.contactId,
event: "user_signed_up",
});
await mailer.send.transactional({
to: "user@example.com",
templateId: "welcome-email",
});
Resources
The SDK provides the following resources:
mailer.contacts | Create, update, delete, and list contacts |
mailer.events | Track and query events |
mailer.templates | Manage email templates |
mailer.sequences | Manage automated sequences |
mailer.campaigns | Manage campaigns |
mailer.segments | Create and manage segments |
mailer.domains | Manage sending domains |
mailer.send | Send transactional emails |
Configuration
const mailer = new Mailer({
apiKey: "kr_live_...",
baseUrl: "https://api.kraiter.com",
timeout: 10000,
fetch: myCustomFetch,
});
Error handling
import { Mailer, MailerError, MailerTimeoutError } from "@kraiter/sdk";
try {
await mailer.contacts.create({ email: "user@example.com" });
} catch (error) {
if (error instanceof MailerError) {
console.error(error.message);
console.error(error.statusCode);
console.error(error.code);
}
if (error instanceof MailerTimeoutError) {
console.error("Request timed out");
}
}
Documentation
Full documentation is available at kraiter.com/docs/sdk-reference.
Licence
MIT