omnisend-node-sdk
v1.0.4
Published
🔹 Typesafe Omnisend API SDK for Node.js
Downloads
12
Maintainers
Readme
- 🛡 Fully typesafe with Omnisend official definitions
- ⚔️ Authentication out of the box
Installation
yarn add omnisend-node-sdk
# or with npm
npm install omnisend-node-sdk
Before starting
Make sure to familiarize yourself with the Omnisend API Docs before using this client. You will need an Omnisend API Key that you can get from your account.
Usage
Client options
| option | description | required | default |
| ---------- | --------------------------------------------------------------------------------------------------------------- | -------- | ------- |
| apiKey
| Your Omnisend API Key. Get it from your account. | Yes | |
| debug
| Enable debug logging. Useful to troubleshoot errors. | No | false
|
| safeMode
| Enable safe mode. (see Using Safe Mode) | No | false
|
Calling the API
Import the client
import Omnisend from "omnisend-node-sdk";
Create a new instance
const omnisend = new Omnisend({
apiKey: "your-api-key",
});
Now all APIs/endpoints are available as properties from the instance you just created.
const contacts = await omnisend.contacts.listContacts();
Using Safe Mode
In safe mode, requests will never throw an error and instead the result will be a discriminated union consisting of an object containing either the successfully received data or the error response.
This is fully typesafe and dependant on the value of the safeMode
option. When set to true
, the omnisend instance will become Omnisend<true>
and all types are automatically switched to discriminated unions.
const omnisend = new Omnisend({
apiKey: "your-api-key",
safeMode: true,
});
const contacts = await omnisend.contacts.listContacts();
if (contacts.success) {
// Access your contacts data
contacts.data;
} else {
// Handle error
contacts.error;
}
Accessing types for each endpoint
If you any of the types of a specific endpoint, you can import them from omnisend-node-sdk/data-contracts
.
import type { ContactsOutput } from "omnisend-node-sdk/data-contracts";