omnisend-node-sdk
Version:
🔹 Typesafe Omnisend API SDK for Node.js
85 lines (60 loc) • 2.76 kB
Markdown
<h1 align="center">Omnisend API SDK</h1>
<p align="center">Typesafe Omnisend API SDK for Node.js</p>
<div align="center">
<a href="https://www.npmjs.com/package/omnisend-node-sk">NPM</a>
</div>
<hr>
- 🛡 Fully typesafe with Omnisend official definitions
- ⚔️ Authentication out of the box
```sh
yarn add omnisend-node-sdk
npm install omnisend-node-sdk
```
Make sure to familiarize yourself with the [Omnisend API Docs](https://api-docs.omnisend.com/reference/getting-started) before using this client. You will need an Omnisend API Key that you can get from [your account](https://app.omnisend.com/#/my-account/integrations/api-keys).
| option | description | required | default |
| ---------- | --------------------------------------------------------------------------------------------------------------- | -------- | ------- |
| `apiKey` | Your Omnisend API Key. Get it from [your account](https://app.omnisend.com/#/my-account/integrations/api-keys). | Yes | |
| `debug` | Enable debug logging. Useful to troubleshoot errors. | No | `false` |
| `safeMode` | Enable safe mode. (see [Using Safe Mode](
Import the client
```ts
import Omnisend from "omnisend-node-sdk";
```
Create a new instance
```ts
const omnisend = new Omnisend({
apiKey: "your-api-key",
});
```
Now all APIs/endpoints are available as properties from the instance you just created.
```ts
const contacts = await omnisend.contacts.listContacts();
```
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.
```ts
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;
}
```
If you any of the types of a specific endpoint, you can import them from `omnisend-node-sdk/data-contracts`.
```ts
import type { ContactsOutput } from "omnisend-node-sdk/data-contracts";
```