Package Exports
- @kraiter/sdk
- @kraiter/sdk/client
- @kraiter/sdk/index
- @kraiter/sdk/resources/billing
- @kraiter/sdk/resources/campaigns
- @kraiter/sdk/resources/contacts
- @kraiter/sdk/resources/domains
- @kraiter/sdk/resources/events
- @kraiter/sdk/resources/identities
- @kraiter/sdk/resources/index
- @kraiter/sdk/resources/metrics
- @kraiter/sdk/resources/scheduled-sends
- @kraiter/sdk/resources/segments
- @kraiter/sdk/resources/send
- @kraiter/sdk/resources/sequences
- @kraiter/sdk/resources/templates
- @kraiter/sdk/resources/tenant
Readme
@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/sdkQuick start
import { Mailer } from "@kraiter/sdk";
const mailer = new Mailer({
apiKey: process.env.KRAITER_API_KEY,
});
// Create a contact
const contact = await mailer.contacts.create({
email: "user@example.com",
properties: { firstName: "John" },
});
// Track an event
await mailer.events.track({
contactId: contact.contactId,
event: "user_signed_up",
});
// Send a transactional email
await mailer.send.transactional({
to: "user@example.com",
templateId: "welcome-email",
});Resources
The SDK provides the following resources:
| Resource | Description |
|---|---|
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({
// Required: your API key
apiKey: "kr_live_...",
// Optional: override the base URL (defaults to https://api.kraiter.com)
baseUrl: "https://api.kraiter.com",
// Optional: request timeout in ms (default: 30000)
timeout: 10000,
// Optional: custom fetch implementation
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); // Human-readable message
console.error(error.statusCode); // HTTP status code
console.error(error.code); // Error code from the API
}
if (error instanceof MailerTimeoutError) {
console.error("Request timed out");
}
}Documentation
Full documentation is available at kraiter.com/docs/sdk-reference.
Licence
MIT