JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q41012F
  • License MIT

TypeScript SDK for the Kraiter email platform

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/sdk

Quick 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