JavaScript / TypeScript SDK
boundry-sdk is the typed fetch client for Node.js, Bun, Deno, Cloudflare Workers, and browser-compatible runtimes.
bash
npm install boundry-sdkTypeScript
import Boundry from "boundry-sdk";
const client = new Boundry({ apiKey: process.env.BOUNDRY_API_KEY });
const email = await client.emails.send({
from: "hello@example.com",
to: "person@example.net",
subject: "Hello from Boundry",
html: "<strong>Hello</strong>",
});
console.log(email.id);Complete API surface
Use the ergonomic resources for common workflows and client.api for every generated operation in the canonical regional API. Review the public source for package tests and runtime compatibility.
| SDK method | What it does | API reference |
|---|---|---|
client.api.listApiKeys(...) | listApiKeys | OpenAPI only |
client.api.createApiKey(...) | createApiKey | OpenAPI only |
client.api.deleteApiKey(...) | deleteApiKey | OpenAPI only |
client.api.listBroadcasts(...) | listBroadcasts | OpenAPI only |
client.api.createBroadcast(...) | createBroadcast | OpenAPI only |
client.api.deleteBroadcast(...) | deleteBroadcast | OpenAPI only |
client.api.getBroadcast(...) | getBroadcast | OpenAPI only |
client.api.updateBroadcast(...) | updateBroadcast | OpenAPI only |
client.api.cancelBroadcast(...) | cancelBroadcast | OpenAPI only |
client.api.listBroadcastClickedLinks(...) | listBroadcastClickedLinks | OpenAPI only |
client.api.getBroadcastMetrics(...) | getBroadcastMetrics | OpenAPI only |
client.api.listBroadcastRecipients(...) | listBroadcastRecipients | OpenAPI only |
client.api.sendBroadcast(...) | sendBroadcast | OpenAPI only |
client.api.listContactProperties(...) | listContactProperties | OpenAPI only |
client.api.createContactProperty(...) | createContactProperty | OpenAPI only |
client.api.deleteContactProperty(...) | deleteContactProperty | OpenAPI only |
client.api.getContactProperty(...) | getContactProperty | OpenAPI only |
client.api.updateContactProperty(...) | updateContactProperty | OpenAPI only |
client.api.listContacts(...) | listContacts | OpenAPI only |
client.api.createContact(...) | createContact | OpenAPI only |
client.api.deleteContact(...) | deleteContact | OpenAPI only |
client.api.getContact(...) | getContact | OpenAPI only |
client.api.updateContact(...) | updateContact | OpenAPI only |
client.api.listContactSegments(...) | listContactSegments | OpenAPI only |
client.api.removeContactFromSegment(...) | removeContactFromSegment | OpenAPI only |
client.api.addContactToSegment(...) | addContactToSegment | OpenAPI only |
client.api.getContactTopics(...) | getContactTopics | OpenAPI only |
client.api.updateContactTopics(...) | updateContactTopics | OpenAPI only |
client.api.listDomains(...) | List domains | View endpoint |
client.api.createDomain(...) | Create a domain | View endpoint |
client.api.deleteDomain(...) | deleteDomain | OpenAPI only |
client.api.getDomain(...) | Retrieve a domain | View endpoint |
client.api.updateDomain(...) | updateDomain | OpenAPI only |
client.api.verifyDomain(...) | Verify a domain | View endpoint |
client.api.createDomainClaim(...) | createDomainClaim | OpenAPI only |
client.api.getDomainClaim(...) | getDomainClaim | OpenAPI only |
client.api.verifyDomainClaim(...) | verifyDomainClaim | OpenAPI only |
client.api.listEmails(...) | List emails | View endpoint |
client.api.sendEmail(...) | Send an email | View endpoint |
client.api.getEmail(...) | Retrieve an email | View endpoint |
client.api.updateScheduledEmail(...) | updateScheduledEmail | OpenAPI only |
client.api.listEmailAttachments(...) | listEmailAttachments | OpenAPI only |
client.api.getEmailAttachment(...) | getEmailAttachment | OpenAPI only |
client.api.cancelEmail(...) | cancelEmail | OpenAPI only |
client.api.retryEmail(...) | retryEmail | OpenAPI only |
client.api.getEmailSource(...) | getEmailSource | OpenAPI only |
client.api.sendBatchEmails(...) | sendBatchEmails | OpenAPI only |
client.api.getEmailMetrics(...) | getEmailMetrics | OpenAPI only |
client.api.listReceivedEmails(...) | listReceivedEmails | OpenAPI only |
client.api.getReceivedEmail(...) | getReceivedEmail | OpenAPI only |
client.api.listReceivedEmailAttachments(...) | listReceivedEmailAttachments | OpenAPI only |
client.api.getReceivedEmailAttachment(...) | getReceivedEmailAttachment | OpenAPI only |
client.api.getReceivedEmailSource(...) | getReceivedEmailSource | OpenAPI only |
client.api.getReceivedEmailThread(...) | getReceivedEmailThread | OpenAPI only |
client.api.health(...) | health | OpenAPI only |
client.api.listLogs(...) | listLogs | OpenAPI only |
client.api.getLog(...) | getLog | OpenAPI only |
client.api.authorizeOAuth(...) | authorizeOAuth | OpenAPI only |
client.api.authorizeOAuthPost(...) | authorizeOAuthPost | OpenAPI only |
client.api.listOAuthGrants(...) | listOAuthGrants | OpenAPI only |
client.api.revokeOAuthGrant(...) | revokeOAuthGrant | OpenAPI only |
client.api.registerOAuthClient(...) | registerOAuthClient | OpenAPI only |
client.api.revokeOAuthToken(...) | revokeOAuthToken | OpenAPI only |
client.api.exchangeOAuthToken(...) | exchangeOAuthToken | OpenAPI only |
client.api.listRegions(...) | List live regions and markets accepting demand requests | OpenAPI only |
client.api.requestRegion(...) | Create or update a regional demand request | OpenAPI only |
client.api.listSegments(...) | listSegments | OpenAPI only |
client.api.createSegment(...) | createSegment | OpenAPI only |
client.api.deleteSegment(...) | deleteSegment | OpenAPI only |
client.api.getSegment(...) | getSegment | OpenAPI only |
client.api.listSegmentContacts(...) | listSegmentContacts | OpenAPI only |
client.api.getSegmentMetrics(...) | getSegmentMetrics | OpenAPI only |
client.api.listSuppressions(...) | listSuppressions | OpenAPI only |
client.api.createSuppression(...) | createSuppression | OpenAPI only |
client.api.deleteSuppression(...) | deleteSuppression | OpenAPI only |
client.api.getSuppression(...) | getSuppression | OpenAPI only |
client.api.deleteBatchSuppressions(...) | deleteBatchSuppressions | OpenAPI only |
client.api.createBatchSuppressions(...) | createBatchSuppressions | OpenAPI only |
client.api.listTemplates(...) | listTemplates | OpenAPI only |
client.api.createTemplate(...) | createTemplate | OpenAPI only |
client.api.deleteTemplate(...) | deleteTemplate | OpenAPI only |
client.api.getTemplate(...) | getTemplate | OpenAPI only |
client.api.updateTemplate(...) | updateTemplate | OpenAPI only |
client.api.duplicateTemplate(...) | duplicateTemplate | OpenAPI only |
client.api.publishTemplate(...) | publishTemplate | OpenAPI only |
client.api.listTopics(...) | listTopics | OpenAPI only |
client.api.createTopic(...) | createTopic | OpenAPI only |
client.api.deleteTopic(...) | deleteTopic | OpenAPI only |
client.api.getTopic(...) | getTopic | OpenAPI only |
client.api.updateTopic(...) | updateTopic | OpenAPI only |
client.api.managedOneClickUnsubscribe(...) | Process an RFC 8058 one-click unsubscribe | OpenAPI only |
client.api.listProjectWebhookEvents(...) | listProjectWebhookEvents | OpenAPI only |
client.api.listWebhooks(...) | List webhooks | View endpoint |
client.api.createWebhook(...) | Create a webhook | View endpoint |
client.api.deleteWebhook(...) | Delete a webhook | View endpoint |
client.api.getWebhook(...) | Retrieve a webhook | View endpoint |
client.api.updateWebhook(...) | Update a webhook | View endpoint |
client.api.listWebhookEvents(...) | listWebhookEvents | OpenAPI only |
client.api.getWebhookEvent(...) | getWebhookEvent | OpenAPI only |
client.api.listWebhookAttempts(...) | listWebhookAttempts | OpenAPI only |
Before you send
Keep BOUNDRY_API_KEY on the server and send from a domain verified in the same project: an unverified from domain returns 422. See verify a domain, then send email for attachments, idempotency keys and managed unsubscribe, or webhooks to verify delivery event signatures.