klaviyo / klaviyo-api-node

Node sdk for the Klaviyo API
55 stars 17 forks source link
bigcommerce ecommerce email klaviyo klaviyo-api magento prestashop push-notifications sfcc shopify sms woocommerce

Klaviyo Typescript SDK

Helpful Resources

Other Klaviyo Resources

Design & Approach

This SDK is a thin wrapper around our API. See our API Reference for full documentation on API behavior.

This SDK exactly mirrors the organization and naming convention of the above language-agnostic resources, with a few namespace changes to make it fit better with Typescript

Organization

This SDK is organized into the following resources:

Installation

NPM

You can install this library using npm.

npm install klaviyo-api@13.0.0

source code

Alternatively, you can also run this using this repo as source code, simply download this repo then connect to your app putting the path in your package.json or via npm link

path: add this line to your apps package.json

"klaviyo-api": "< path to downloaded source code >"

npm link:

run npm link in your local copy of this repo's directory

run npm link <"path to this repo"> first in your consuming app's directory

Sample file:

If you want to test out the repo but don't have a consuming app, you can run our sample typescript file, make whatever edits you want to sample.ts in the sample folder and use

npm run sample --pk=<YOUR PRIVATE KEY HERE>

Usage Example

To instantiate an API wrapper using an API Key

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

To call the createProfile operation:

import {
  ApiKeySession,
  ProfileCreateQuery,
  ProfileEnum,
  ProfilesApi,
} from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

let profile: ProfileCreateQuery = {
  data: {
  type: ProfileEnum.Profile,
  attributes: {
    email: "typescript_test_1@klaviyo-demo.com"
    }
  }
}

profilesApi.createProfile(profile).then(result => {
  console.log(result)
}).catch(error => {
  console.log(error)
});

Retry Options

Constructing an API object also has optional property RetryOptions, this acts as a light wrapper with some different defaults around the exponential-backoff library

you can override

const retryOptions: RetryOptions = new RetryOptions({numOfAttempts: 3, timeMultiple: 5, startingDelay: 500)
const session = new ApiKeySession("< YOUR API KEY HERE >", retryOptions)

if you have used exponential backoff before you can bypass the all the settings by just setting the options with a BackoffOptions object

const retryOptions: RetryOptions = new RetryOptions()
retryOptions.options = { "BUILD YOUR OWN BackoffOptions object here" }

Organizational Helpers

There is also an optional Klaviyo import that has all the Apis and Auth, if you prefer that method for organization.

import { Klaviyo } from 'klaviyo-api'

const profilesApi = new Klaviyo.ProfilesApi(new Klaviyo.Auth.ApiKeySession("< YOUR API KEY HERE >", retryOptions))

Inspecting Errors

Failed api calls throw an AxiosError.

The two most commonly useful error items are probably

Here is an example of logging those errors to the console

profilesApi.createProfile(profile).then(result => {
  console.log(result.body)
}).catch(error => {
  console.log(error.response.status)
  console.log(error.response.statusText)
});

Uploading an image by file

The ImageApi exposes uploadImageFromFile()

import fs from 'fs'
import {ApiKeySession, ImageApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const imageApi = new ImagesApi(session)
imageApi.uploadImageFromFile(fs.createReadStream("./test_image.jpeg")).then(result => {
    console.log(result.body)
}).catch(error => {
  console.log(error)
}

Global Api Key

If you only connect to one Klaviyo account you may find it useful to access preconfigured objects.

Set a global key, If you were using ConfigWrapper this also sets the GlobalApiKeySettings

import { GlobalApiKeySettings } from 'klaviyo-api'

new GlobalApiKeySettings("< YOUR API KEY HERE >")

Now you can use the shortened names ProfilesApi can be referenced with Profiles

import { Profiles, GlobalApiKeySettings } from 'klaviyo-api'

new GlobalApiKeySettings("< YOUR API KEY HERE >")

Profiles.getProfiles().then(result => {
  console.log(result.body)
}).catch(error => {
  console.log(error.response.status)
  console.log(error.response.statusText)
});

Using OAuth to connect to multiple Klaviyo accounts.

For users creating integrations or managing multiple Klaviyo accounts, Klaviyo's OAuth authentication will make these tasks easier.

Getting started with OAuth

First, configure an integration. If you haven't set up an integration, learn about it in this guide

Making API Calls with OAuth

The klaviyo-api package can keep your access token up to date. If you have already developed a system for refreshing tokens or would like a more minimalist option, skip to OAuthBasicSession

TokenStorage

For the OAuthApi to be storage agnostic, this interface must be implemented for the OAuthApi to retrieve and save you access and refresh tokens. Implement the retrieve and save functions outlined in the interface. If you need help getting started, check out the storageHelpers.ts in the Klaviyo Example Typescript Integration

Your implementation needs to include two methods:

  1. save is called after creating a new access token via the authorization flow or after refreshing the access token. Your code needs to update (and insert if you are going to be using createTokens()) the new access or refresh token information into storage to keep track of which of your integration users' access information you are referencing, the customerIdentifier is a unique value to help with lookup later.
    save(customerIdentifier: string, tokens: CreatedTokens): Promise<void> | void
  2. retrieve leverages the customerIdentifier to look up the saved token information and returns it for the OAuthApi to use
    retrieve(customerIdentifier: string): Promise<RetrievedTokens> | RetrievedTokens
import { TokenStorage } from 'klaviyo-api';
class <Your Token Storage Class Name Here> implements TokenStorage

OAuthApi

This class holds the information about your specific integration. It takes three inputs:

  1. clientId - This is the id of your integration. Retrieve it from your integration's settings page
  2. clientSecret - This is the secret for your integration. The secret is generated upon the creation of your integration.
  3. tokenStorage - This is an instance of your implementation of TokenStorage and is called automatically when creating and refreshing access tokens
import { OAuthApi } from 'klaviyo-api';

const oauthApi = new OAuthApi("<client id>", "<client secret>", <instance of your TokenStorage implimentation>)

OAuthSession

To make an API call, you need to create an OAuthSession instance. This session object is the OAuth equivalent of ApiKeySession and is used similarly.

It takes two properties

  1. customerIdentifier - This is how the session is going to grab a user's authentication information and let your implementation of TokenStorage know where to save any update access token
  2. oauthApi - This is the instance of OAuthApi created above. It will dictate how the session saves and retrieves the access tokens
  3. retryOptions - OPTIONAL - the RetryOptions instance outlines your desired exponential backoff retry options, outlined in Retry Options above
import { OAuthSession, ProfilesApi } from 'klaviyo-api';

const session = new OAuthSession(customerIdentifier, oauthApi)

//Pass the session into the API you want to use
const profileApi = new ProfilesApi(session)

OAuthBasicSession

If you don't want to deal with any of the helpers above or don't want klaviyo-api to refresh your tokens for you, this is the alternative.

The OAuthBasicSession takes up to two parameters

  1. accessToken - The token is used in the API calls' authentication
  2. retryOptions - OPTIONAL - the RetryOptions instance outlines your desired exponential backoff retry options, outlined in Retry Options above
import { OAuthBasicSession } from 'klaviyo-api';

const session = new OAuthBasicSession("<access token>")

//Pass the session into the API you want to use
const profileApi = new ProfilesApi(session)

Remember to check for 401 errors. A 401 means that your token is probably expired.

KlaviyoTokenError

If an error occurred during an API call, check the error type with isKlaviyoTokenError. The name property will reflect which step the error occurred, reflecting whether it happened during creating, refreshing, saving, or retrieving the name tokens. The cause property will hold the error object of whatever specific error occurred.

Authorization Flow

Build The authorization flow in the same application as with the rest of your integrations business logic or separately. There is no requirement that the authorization flow has to be backend and can be implemented entirely in a frontend application (in that case, you can ignore this section, as this repo shouldn't use this for frontend code)

To understand the authorization flow, there are two major resources to help:

  1. OAuth authorization guide
  2. Node Integration Example

If you implement your authorization flow on a node server, you can use these exposed helper functions.

OAuthApi

The OAuthApi class also exposes helpful Authorization flow utilities.

  1. generateAuthorizeUrl - This helps correctly format the Klaviyo /oauth/authorize URL the application needs to redirect to so a user can approve your integration.

    1. state - This is the only way to identify which user just authorized your application (or failed to). state is passed back via query parameter to your redirectUrl.
    2. scope - The permissions the created access tokens will have. The user will be displayed these scopes during the authorization flow. For these permissions to work, also add them to your app settings in Klaviyo here
    3. codeChallenge - This is the value generated above by the generateCode function.
    4. redirectUrl - This is the URL that Klaviyo will redirect the user to once Authorization is completed (even if it is denied or has an error). Remember to whitelist this redirect URL in your integration's settings in Klaviyo.
      
      import { OAuthApi } from 'klaviyo-api'

    const oauthApi = new OAuthApi("", "", ) oauthApi.generateAuthorizeUrl( state, // It's suggested to use your internal identifier for the Klaviyo account that is authorizing scopes, codeChallenge, redirectUrl )

  2. createTokens - Uses Klaviyo /oauth/token/ endpoint to create access and refresh tokens

    1. customerIdentifier - This ID is NOT sent to Klaviyo's API. If the /token API call this method wraps is successful, the created tokens will be passed into your save method along with this customerIdentifier in your implementation of TokenStorage.
    2. codeVerifier - The verifier code must match the challenge code in the authorized URL redirect.
    3. authorizationCode- A User approving your integration creates this temporary authorization code. Your specified redirect URL receives this under a code query parameter.
    4. redirectUrl - The endpoint set in generateAuthorizeUrl. Whitelist the URL in your application settings.
    import { OAuthApi } from 'klaviyo-api'
    
    const oauthApi = new OAuthApi("<client id>", "<client secret>", <TokenStorage implementation instance>)
    await oauthApi.createTokens(
      customerIdentifier,
      codeVerifier,
      authorizationCode,
      redirectUrl
    )
  3. OAuthCallbackQueryParams For typescript users, this object is an interface representing the possible query parameters sent to your redirect endpoint

Proof Key of Code Exchange (PKCE)

All the PKCE helper functions live within the Pkce namespace. Read about PKCE here

import { Pkce } from 'klaviyo-api'

The Pkce namespace holds two different helper utilities

  1. generateCodes - This method will create the codeVerifier and codeChallenge needed later in the authorization flow.

    import { Pkce } from 'klaviyo-api'
    
    const pkceCodes = new Pkce.generateCodes()
    // the two codes can be accessed by
    const codeVerifier: string = pkceCodes.codeVerifier
    const codeChallenge: string = pkceCodes.codeChallenge
  2. CodeStorage - This is an OPTIONAL interface to help keep your code organized, to relate a customerIdentifier to their generated PKCE code

    import { Pkce } from 'klaviyo-api'
    class <Your Code Storage Class Here> implements Pkce.CodeStorage

Optional Parameters and JSON:API features

Here we will go over

Quick rule

As a reminder, some optional parameters are named slightly differently from how you would make the call without the SDK docs; the reason for this is that some query parameter names have variables that make for bad JavaScript names. For example: page[cursor] becomes pageCursor. (In short: remove the non-allowed characters and append words with camelCase).

Cursor based Pagination

All the endpoints that return a list of results use cursor-based pagination.

Obtain the cursor value from the call you want to get the next page for, then pass it under the pageCursor optional parameter. The page cursor looks like WzE2NDA5OTUyMDAsICIzYzRjeXdGTndadyIsIHRydWVd.

API call:

https://a.klaviyo.com/api/profiles/?page[cursor]=WzE2NTcyMTM4NjQsICIzc042NjRyeHo0ciIsIHRydWVd

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileList = await profilesApi.getProfiles({pageCursor: 'WzE2NTcyMTM4NjQsICIzc042NjRyeHo0ciIsIHRydWVd'})

You get the cursor for the next page from body.link.next. This returns the entire url of the next call, but the SDK will accept the entire link and use only the relevant cursor, so no need to do any parsing of the next link on your end

Here is an example of getting the second next and passing in the page cursor:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

try {
    const profilesListFirstPage = await profilesApi.getProfiles()
    const nextPage = profilesListFirstPage.body.links.next
    const profileListSecondPage = await profilesApi.getProfiles({pageCursor: nextPage})
    console.log(profileListSecondPage.body)
} catch (e) {
    console.log(e)
}

There are more page cursors than just next: first, last, next and prev. Check the API Reference for all the paging params for a given endpoint.

Page Size

Some endpoints allow you to set the page size by using the pageSize parameter.

API call:

https://a.klaviyo.com/api/profiles/?page[size]=20

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileList = await profilesApi.getProfiles({pageSize: 20})

Additional Fields

Additional fields are used to populate parts of the response that would be null otherwise. For example, for the getProfile, endpoint you can pass in a request to get the predictive analytics of the profile. Using the additionalFields parameter does impact the rate limit of the endpoint in cases where the related resource is subject to a lower rate limit, so be sure to keep an eye on your usage. API call:

https://a.klaviyo.com/api/profiles/01GDDKASAP8TKDDA2GRZDSVP4H/?additional-fields[profile]=predictive_analytics

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileId = '01GDDKASAP8TKDDA2GRZDSVP4H'
const profile = await profilesApi.getProfile(profileId, {additionalFieldsProfile: ['predictive_analytics']})

// If your profile has enough information for predictive analytis it will populate
console.log(profile.body.data.attributes.predictiveAnalytics)

Filtering

You can filter responses by passing a string into the optional parameter filter. Note that when filtering by a property it will be snake_case instead of camelCase, ie. metric_id

Read more about formatting your filter strings in our developer documentation

Here is an example of a filter string for results between two date times: less-than(updated,2023-04-26T00:00:00Z),greater-than(updated,2023-04-19T00:00:00Z)

Here is a code example to filter for profiles with the matching emails:

https://a.klaviyo.com/api/profiles/?filter=any(email,["henry.chan@klaviyo-demo.com","amanda.das@klaviyo-demo.com"]

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const filter = 'any(email,["henry.chan@klaviyo-demo.com","amanda.das@klaviyo-demo.com"])'
const profileList = await profilesApi.getProfiles({filter})

To help create filters in the correct format, use the FilterBuilder class

new FilterBuilder()
      .equals("email", "sm@klaviyo-demo.com")
      .build() // outputs equals(email,"sm@klaviyo-demo.com")

Complex filters can be build by adding additional filters to the builder before calling build()

const date = new Date(2023, 7, 15, 12, 30, 0);
new FilterBuilder()
      .any("email", ["sarah.mason@klaviyo-demo.com", "sm@klaviyo-demo.com"])
      .greaterThan("created", date)
      .build();
// outputs any(email,["sarah.mason@klaviyo-demo.com","sm@klaviyo-demo.com"]),greater-than(created,2023-08-15T16:30:00.000Z)

Sparse Fields

If you only want a specific subset of data from a specific query you can use sparse fields to request only the specific properties. The SDK expands the optional sparse fields into their own option, where you can pass a list of the desired items to include.

To get a list of event properties the API call you would use is:

https://a.klaviyo.com/api/events/?fields[event]=event_properties

SDK call:

import { ApiKeySession, EventsApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const eventsApi = new EventsApi(session)

const eventsList = await eventsApi.getEvents({fieldsEvent: ["event_properties"]})

Sorting

Your can request the results of specific endpoints to be ordered by a given parameter. The direction of the sort can be reversed by adding a - in front of the sort key. For example datetime will be ascending while -datetime will be descending.

If you are unsure about the available sort fields, refer to the API Reference page for the endpoint you are using. For a comprehensive list that links to the documentation for each function check the Endpoints section below.

API Call to get events sorted by oldest to newest datetime:

https://a.klaviyo.com/api/events/?sort=-datetime

SDK call:

import { ApiKeySession, EventsApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const eventsApi = new EventsApi(session)

const events = await eventsApi.getEvents({sort: '-datetime'})

Includes

You can add additional information to your API response via additional fields and the includes parameter. This allows you to get information about two or more objects from a single API call. Using the includes parameter often changes the rate limit of the endpoint so be sure to take note.

API call to get profile information and the information about the lists the profile is in:

https://a.klaviyo.com/api/profiles/01GDDKASAP8TKDDA2GRZDSVP4H/?include=lists

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileId = '01GDDKASAP8TKDDA2GRZDSVP4H'
const profile = await profilesApi.getProfile(profileId,{include:["lists"]})

// Profile information is accessed the same way with
console.log(profile.body.data)
// Lists related to the profile with be accessible via the included array
console.log(profile.body.included)

Note about sparse fields and relationships: you can also request only specific fields for the included object as well.

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileId = '01GDDKASAP8TKDDA2GRZDSVP4H'
// Use the fieldsLists property to request only the list name
const profile = await profilesApi.getProfile(profileId, {fieldsList: ['name'], include: ["lists"]})

// Profile information is accessed the same way with
console.log(profile.body.data)
// Lists related to the profile with be accessible via the included array
console.log(profile.body.included)

Relationships

The Klaviyo API has a series of endpoints to expose the relationships between different Klaviyo Items. You can read more about relationships in our documentation.

Here are some use cases and their examples:

API call to get the list membership for a profile with the given profile ID:

https://a.klaviyo.com/api/profiles/01GDDKASAP8TKDDA2GRZDSVP4H/relationships/lists/

SDK call:

import { ApiKeySession, ProfilesApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const profilesApi = new ProfilesApi(session)

const profileId = '01GDDKASAP8TKDDA2GRZDSVP4H'
const profileRelationships = await profilesApi.getProfileRelationshipsLists(profileId)

For another example:

Get all campaigns associated with the given tag_id.

API call:

https://a.klaviyo.com/api/tags/9c8db7a0-5ab5-4e3c-9a37-a3224fd14382/relationships/campaigns/

SDK call:

import { ApiKeySession, TagsApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const tagsApi = new TagsApi(session)

const tagId = '9c8db7a0-5ab5-4e3c-9a37-a3224fd14382'
const relatedCampagins = tagsApi.getTagRelationshipsCampaigns(tagId)

Combining

You can use any combination of the features outlines above in conjunction with one another.

API call to get events associated with a specific metric, then return just the event properties sorted by oldest to newest datetime:

API call:

https://a.klaviyo.com/api/events/?fields[event]=event_properties&filter=equals(metric_id,"URDbLg")&sort=-datetime

SDK call:

import { ApiKeySession, EventsApi } from 'klaviyo-api'

const session = new ApiKeySession("< YOUR API KEY HERE >")
const eventsApi = new EventsApi(session)

const metricId = 'URDbLg'
const filter = `equal(metric_id,"${metricId}")`
const events = await eventsApi.getEvents({fieldsEvent: ['event_properties'], sort: '-datetime', filter})

Endpoints

AccountsApi


Get Account

AccountsApi.getAccount(id: string, options)

Get Accounts

AccountsApi.getAccounts(options)

CampaignsApi


Assign Template to Campaign Message

CampaignsApi.assignTemplateToCampaignMessage(campaignMessageAssignTemplateQuery: CampaignMessageAssignTemplateQuery)
Method alias:
CampaignsApi.createCampaignMessageAssignTemplate(campaignMessageAssignTemplateQuery: CampaignMessageAssignTemplateQuery)

Cancel Campaign Send

CampaignsApi.cancelCampaignSend(id: string, campaignSendJobPartialUpdateQuery: CampaignSendJobPartialUpdateQuery)
Method alias:
CampaignsApi.updateCampaignSendJob(id: string, campaignSendJobPartialUpdateQuery: CampaignSendJobPartialUpdateQuery)

Create Campaign

CampaignsApi.createCampaign(campaignCreateQuery: CampaignCreateQuery)

Create Campaign Clone

CampaignsApi.createCampaignClone(campaignCloneQuery: CampaignCloneQuery)
Method alias:
CampaignsApi.cloneCampaign(campaignCloneQuery: CampaignCloneQuery)

Delete Campaign

CampaignsApi.deleteCampaign(id: string)

Get Campaign

CampaignsApi.getCampaign(id: string, options)

Get Campaign for Campaign Message

CampaignsApi.getCampaignForCampaignMessage(id: string, options)
Method alias:
CampaignsApi.getCampaignMessageCampaign(id: string, options)

Get Campaign ID for Campaign Message

CampaignsApi.getCampaignIdForCampaignMessage(id: string)
Method alias:
CampaignsApi.getCampaignMessageRelationshipsCampaign(id: string)

Get Campaign Message

CampaignsApi.getCampaignMessage(id: string, options)

Get Campaign Recipient Estimation

CampaignsApi.getCampaignRecipientEstimation(id: string, options)

Get Campaign Recipient Estimation Job

CampaignsApi.getCampaignRecipientEstimationJob(id: string, options)

Get Campaign Send Job

CampaignsApi.getCampaignSendJob(id: string, options)

Get Campaign Tags

CampaignsApi.getCampaignTags(id: string, options)

Get Campaigns

CampaignsApi.getCampaigns(filter: string, options)

Get Message IDs for Campaign

CampaignsApi.getMessageIdsForCampaign(id: string)
Method alias:
CampaignsApi.getCampaignRelationshipsCampaignMessages(id: string)

Get Messages for Campaign

CampaignsApi.getMessagesForCampaign(id: string, options)
Method alias:
CampaignsApi.getCampaignCampaignMessages(id: string, options)

Get Tag IDs for Campaign

CampaignsApi.getTagIdsForCampaign(id: string)
Method alias:
CampaignsApi.getCampaignRelationshipsTags(id: string)

Get Template for Campaign Message

CampaignsApi.getTemplateForCampaignMessage(id: string, options)
Method alias:
CampaignsApi.getCampaignMessageTemplate(id: string, options)

Get Template ID for Campaign Message

CampaignsApi.getTemplateIdForCampaignMessage(id: string)
Method alias:
CampaignsApi.getCampaignMessageRelationshipsTemplate(id: string)

Refresh Campaign Recipient Estimation

CampaignsApi.refreshCampaignRecipientEstimation(campaignRecipientEstimationJobCreateQuery: CampaignRecipientEstimationJobCreateQuery)
Method alias:
CampaignsApi.createCampaignRecipientEstimationJob(campaignRecipientEstimationJobCreateQuery: CampaignRecipientEstimationJobCreateQuery)

Send Campaign

CampaignsApi.sendCampaign(campaignSendJobCreateQuery: CampaignSendJobCreateQuery)
Method alias:
CampaignsApi.createCampaignSendJob(campaignSendJobCreateQuery: CampaignSendJobCreateQuery)

Update Campaign

CampaignsApi.updateCampaign(id: string, campaignPartialUpdateQuery: CampaignPartialUpdateQuery)

Update Campaign Message

CampaignsApi.updateCampaignMessage(id: string, campaignMessagePartialUpdateQuery: CampaignMessagePartialUpdateQuery)

CatalogsApi


Add Category to Catalog Item

CatalogsApi.addCategoryToCatalogItem(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)
Method alias:
CatalogsApi.createCatalogItemRelationshipsCategories(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)
Method alias:
CatalogsApi.createCatalogItemRelationshipsCategory(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)

Add Items to Catalog Category

CatalogsApi.addItemsToCatalogCategory(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)
Method alias:
CatalogsApi.createCatalogCategoryRelationshipsItems(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)
Method alias:
CatalogsApi.createCatalogCategoryRelationshipsItem(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)

Bulk Create Catalog Categories

CatalogsApi.bulkCreateCatalogCategories(catalogCategoryCreateJobCreateQuery: CatalogCategoryCreateJobCreateQuery)
Method alias:
CatalogsApi.spawnCreateCategoriesJob(catalogCategoryCreateJobCreateQuery: CatalogCategoryCreateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogCategoryBulkCreateJob(catalogCategoryCreateJobCreateQuery: CatalogCategoryCreateJobCreateQuery)

Bulk Create Catalog Items

CatalogsApi.bulkCreateCatalogItems(catalogItemCreateJobCreateQuery: CatalogItemCreateJobCreateQuery)
Method alias:
CatalogsApi.spawnCreateItemsJob(catalogItemCreateJobCreateQuery: CatalogItemCreateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogItemBulkCreateJob(catalogItemCreateJobCreateQuery: CatalogItemCreateJobCreateQuery)

Bulk Create Catalog Variants

CatalogsApi.bulkCreateCatalogVariants(catalogVariantCreateJobCreateQuery: CatalogVariantCreateJobCreateQuery)
Method alias:
CatalogsApi.spawnCreateVariantsJob(catalogVariantCreateJobCreateQuery: CatalogVariantCreateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogVariantBulkCreateJob(catalogVariantCreateJobCreateQuery: CatalogVariantCreateJobCreateQuery)

Bulk Delete Catalog Categories

CatalogsApi.bulkDeleteCatalogCategories(catalogCategoryDeleteJobCreateQuery: CatalogCategoryDeleteJobCreateQuery)
Method alias:
CatalogsApi.spawnDeleteCategoriesJob(catalogCategoryDeleteJobCreateQuery: CatalogCategoryDeleteJobCreateQuery)
Method alias:
CatalogsApi.createCatalogCategoryBulkDeleteJob(catalogCategoryDeleteJobCreateQuery: CatalogCategoryDeleteJobCreateQuery)

Bulk Delete Catalog Items

CatalogsApi.bulkDeleteCatalogItems(catalogItemDeleteJobCreateQuery: CatalogItemDeleteJobCreateQuery)
Method alias:
CatalogsApi.spawnDeleteItemsJob(catalogItemDeleteJobCreateQuery: CatalogItemDeleteJobCreateQuery)
Method alias:
CatalogsApi.createCatalogItemBulkDeleteJob(catalogItemDeleteJobCreateQuery: CatalogItemDeleteJobCreateQuery)

Bulk Delete Catalog Variants

CatalogsApi.bulkDeleteCatalogVariants(catalogVariantDeleteJobCreateQuery: CatalogVariantDeleteJobCreateQuery)
Method alias:
CatalogsApi.spawnDeleteVariantsJob(catalogVariantDeleteJobCreateQuery: CatalogVariantDeleteJobCreateQuery)
Method alias:
CatalogsApi.createCatalogVariantBulkDeleteJob(catalogVariantDeleteJobCreateQuery: CatalogVariantDeleteJobCreateQuery)

Bulk Update Catalog Categories

CatalogsApi.bulkUpdateCatalogCategories(catalogCategoryUpdateJobCreateQuery: CatalogCategoryUpdateJobCreateQuery)
Method alias:
CatalogsApi.spawnUpdateCategoriesJob(catalogCategoryUpdateJobCreateQuery: CatalogCategoryUpdateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogCategoryBulkUpdateJob(catalogCategoryUpdateJobCreateQuery: CatalogCategoryUpdateJobCreateQuery)

Bulk Update Catalog Items

CatalogsApi.bulkUpdateCatalogItems(catalogItemUpdateJobCreateQuery: CatalogItemUpdateJobCreateQuery)
Method alias:
CatalogsApi.spawnUpdateItemsJob(catalogItemUpdateJobCreateQuery: CatalogItemUpdateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogItemBulkUpdateJob(catalogItemUpdateJobCreateQuery: CatalogItemUpdateJobCreateQuery)

Bulk Update Catalog Variants

CatalogsApi.bulkUpdateCatalogVariants(catalogVariantUpdateJobCreateQuery: CatalogVariantUpdateJobCreateQuery)
Method alias:
CatalogsApi.spawnUpdateVariantsJob(catalogVariantUpdateJobCreateQuery: CatalogVariantUpdateJobCreateQuery)
Method alias:
CatalogsApi.createCatalogVariantBulkUpdateJob(catalogVariantUpdateJobCreateQuery: CatalogVariantUpdateJobCreateQuery)

Create Back In Stock Subscription

CatalogsApi.createBackInStockSubscription(serverBISSubscriptionCreateQuery: ServerBISSubscriptionCreateQuery)

Create Catalog Category

CatalogsApi.createCatalogCategory(catalogCategoryCreateQuery: CatalogCategoryCreateQuery)

Create Catalog Item

CatalogsApi.createCatalogItem(catalogItemCreateQuery: CatalogItemCreateQuery)

Create Catalog Variant

CatalogsApi.createCatalogVariant(catalogVariantCreateQuery: CatalogVariantCreateQuery)

Delete Catalog Category

CatalogsApi.deleteCatalogCategory(id: string)

Delete Catalog Item

CatalogsApi.deleteCatalogItem(id: string)

Delete Catalog Variant

CatalogsApi.deleteCatalogVariant(id: string)

Get Bulk Create Catalog Items Job

CatalogsApi.getBulkCreateCatalogItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getCreateItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogItemBulkCreateJob(jobId: string, options)

Get Bulk Create Catalog Items Jobs

CatalogsApi.getBulkCreateCatalogItemsJobs(options)
Method alias:
CatalogsApi.getCreateItemsJobs(options)
Method alias:
CatalogsApi.getCatalogItemBulkCreateJobs(options)

Get Bulk Delete Catalog Items Job

CatalogsApi.getBulkDeleteCatalogItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getDeleteItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogItemBulkDeleteJob(jobId: string, options)

Get Bulk Delete Catalog Items Jobs

CatalogsApi.getBulkDeleteCatalogItemsJobs(options)
Method alias:
CatalogsApi.getDeleteItemsJobs(options)
Method alias:
CatalogsApi.getCatalogItemBulkDeleteJobs(options)

Get Bulk Update Catalog Items Job

CatalogsApi.getBulkUpdateCatalogItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getUpdateItemsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogItemBulkUpdateJob(jobId: string, options)

Get Bulk Update Catalog Items Jobs

CatalogsApi.getBulkUpdateCatalogItemsJobs(options)
Method alias:
CatalogsApi.getUpdateItemsJobs(options)
Method alias:
CatalogsApi.getCatalogItemBulkUpdateJobs(options)

Get Catalog Categories

CatalogsApi.getCatalogCategories(options)

Get Catalog Category

CatalogsApi.getCatalogCategory(id: string, options)

Get Catalog Item

CatalogsApi.getCatalogItem(id: string, options)

Get Catalog Items

CatalogsApi.getCatalogItems(options)

Get Catalog Variant

CatalogsApi.getCatalogVariant(id: string, options)

Get Catalog Variants

CatalogsApi.getCatalogVariants(options)

Get Categories for Catalog Item

CatalogsApi.getCategoriesForCatalogItem(id: string, options)
Method alias:
CatalogsApi.getCatalogItemCategories(id: string, options)

Get Category IDs for Catalog Item

CatalogsApi.getCategoryIdsForCatalogItem(id: string, options)
Method alias:
CatalogsApi.getCatalogItemRelationshipsCategories(id: string, options)

Get Create Categories Job

CatalogsApi.getCreateCategoriesJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogCategoryBulkCreateJob(jobId: string, options)

Get Create Categories Jobs

CatalogsApi.getCreateCategoriesJobs(options)
Method alias:
CatalogsApi.getCatalogCategoryBulkCreateJobs(options)

Get Create Variants Job

CatalogsApi.getCreateVariantsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogVariantBulkCreateJob(jobId: string, options)

Get Create Variants Jobs

CatalogsApi.getCreateVariantsJobs(options)
Method alias:
CatalogsApi.getCatalogVariantBulkCreateJobs(options)

Get Delete Categories Job

CatalogsApi.getDeleteCategoriesJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogCategoryBulkDeleteJob(jobId: string, options)

Get Delete Categories Jobs

CatalogsApi.getDeleteCategoriesJobs(options)
Method alias:
CatalogsApi.getCatalogCategoryBulkDeleteJobs(options)

Get Delete Variants Job

CatalogsApi.getDeleteVariantsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogVariantBulkDeleteJob(jobId: string, options)

Get Delete Variants Jobs

CatalogsApi.getDeleteVariantsJobs(options)
Method alias:
CatalogsApi.getCatalogVariantBulkDeleteJobs(options)

Get Item IDs for Catalog Category

CatalogsApi.getItemIdsForCatalogCategory(id: string, options)
Method alias:
CatalogsApi.getCatalogCategoryRelationshipsItems(id: string, options)

Get Items for Catalog Category

CatalogsApi.getItemsForCatalogCategory(id: string, options)
Method alias:
CatalogsApi.getCatalogCategoryItems(id: string, options)

Get Update Categories Job

CatalogsApi.getUpdateCategoriesJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogCategoryBulkUpdateJob(jobId: string, options)

Get Update Categories Jobs

CatalogsApi.getUpdateCategoriesJobs(options)
Method alias:
CatalogsApi.getCatalogCategoryBulkUpdateJobs(options)

Get Update Variants Job

CatalogsApi.getUpdateVariantsJob(jobId: string, options)
Method alias:
CatalogsApi.getCatalogVariantBulkUpdateJob(jobId: string, options)

Get Update Variants Jobs

CatalogsApi.getUpdateVariantsJobs(options)
Method alias:
CatalogsApi.getCatalogVariantBulkUpdateJobs(options)

Get Variants for Catalog Item

CatalogsApi.getVariantsForCatalogItem(id: string, options)
Method alias:
CatalogsApi.getCatalogItemVariants(id: string, options)

Remove Categories from Catalog Item

CatalogsApi.removeCategoriesFromCatalogItem(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)
Method alias:
CatalogsApi.deleteCatalogItemRelationshipsCategories(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)

Remove Items from Catalog Category

CatalogsApi.removeItemsFromCatalogCategory(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)
Method alias:
CatalogsApi.deleteCatalogCategoryRelationshipsItems(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)

Update Catalog Category

CatalogsApi.updateCatalogCategory(id: string, catalogCategoryUpdateQuery: CatalogCategoryUpdateQuery)

Update Catalog Item

CatalogsApi.updateCatalogItem(id: string, catalogItemUpdateQuery: CatalogItemUpdateQuery)

Update Catalog Variant

CatalogsApi.updateCatalogVariant(id: string, catalogVariantUpdateQuery: CatalogVariantUpdateQuery)

Update Categories for Catalog Item

CatalogsApi.updateCategoriesForCatalogItem(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)
Method alias:
CatalogsApi.updateCatalogItemRelationshipsCategories(id: string, catalogItemCategoryOp: CatalogItemCategoryOp)

Update Items for Catalog Category

CatalogsApi.updateItemsForCatalogCategory(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)
Method alias:
CatalogsApi.updateCatalogCategoryRelationshipsItems(id: string, catalogCategoryItemOp: CatalogCategoryItemOp)

CouponsApi


Bulk Create Coupon Codes

CouponsApi.bulkCreateCouponCodes(couponCodeCreateJobCreateQuery: CouponCodeCreateJobCreateQuery)
Method alias:
CouponsApi.spawnCouponCodeBulkCreateJob(couponCodeCreateJobCreateQuery: CouponCodeCreateJobCreateQuery)
Method alias:
CouponsApi.createCouponCodeBulkCreateJob(couponCodeCreateJobCreateQuery: CouponCodeCreateJobCreateQuery)

Create Coupon

CouponsApi.createCoupon(couponCreateQuery: CouponCreateQuery)

Create Coupon Code

CouponsApi.createCouponCode(couponCodeCreateQuery: CouponCodeCreateQuery)

Delete Coupon

CouponsApi.deleteCoupon(id: string)

Delete Coupon Code

CouponsApi.deleteCouponCode(id: string)

Get Bulk Create Coupon Code Jobs

CouponsApi.getBulkCreateCouponCodeJobs(options)
Method alias:
CouponsApi.getCouponCodeBulkCreateJobs(options)

Get Bulk Create Coupon Codes Job

CouponsApi.getBulkCreateCouponCodesJob(jobId: string, options)
Method alias:
CouponsApi.getCouponCodeBulkCreateJob(jobId: string, options)

Get Code IDs for Coupon

CouponsApi.getCodeIdsForCoupon(id: string, options)
Method alias:
CouponsApi.getCouponCodeRelationshipsCoupon(id: string, options)

Get Coupon

CouponsApi.getCoupon(id: string, options)

Get Coupon Code

CouponsApi.getCouponCode(id: string, options)

Get Coupon Codes

CouponsApi.getCouponCodes(options)

Get Coupon Codes For Coupon

CouponsApi.getCouponCodesForCoupon(id: string, options)
Method alias:
CouponsApi.getCouponCouponCodes(id: string, options)

Get Coupon For Coupon Code

CouponsApi.getCouponForCouponCode(id: string, options)
Method alias:
CouponsApi.getCouponCodeCoupon(id: string, options)

Get Coupon ID for Coupon Code

CouponsApi.getCouponIdForCouponCode(id: string)
Method alias:
CouponsApi.getCouponRelationshipsCouponCodes(id: string)

Get Coupons

CouponsApi.getCoupons(options)

Update Coupon

CouponsApi.updateCoupon(id: string, couponUpdateQuery: CouponUpdateQuery)

Update Coupon Code

CouponsApi.updateCouponCode(id: string, couponCodeUpdateQuery: CouponCodeUpdateQuery)

DataPrivacyApi


Request Profile Deletion

DataPrivacyApi.requestProfileDeletion(dataPrivacyCreateDeletionJobQuery: DataPrivacyCreateDeletionJobQuery)
Method alias:
DataPrivacyApi.createDataPrivacyDeletionJob(dataPrivacyCreateDeletionJobQuery: DataPrivacyCreateDeletionJobQuery)

EventsApi


Bulk Create Events

EventsApi.bulkCreateEvents(eventsBulkCreateJob: EventsBulkCreateJob)
Method alias:
EventsApi.createEventBulkCreateJob(eventsBulkCreateJob: EventsBulkCreateJob)

Create Event

EventsApi.createEvent(eventCreateQueryV2: EventCreateQueryV2)

Get Event

EventsApi.getEvent(id: string, options)

Get Event Metric

EventsApi.getEventMetric(id: string, options)

Get Event Profile

EventsApi.getEventProfile(id: string, options)

Get Events

EventsApi.getEvents(options)

Get Metric ID for Event

EventsApi.getMetricIdForEvent(id: string)
Method alias:
EventsApi.getEventRelationshipsMetric(id: string)

Get Profile ID for Event

EventsApi.getProfileIdForEvent(id: string)
Method alias:
EventsApi.getEventRelationshipsProfile(id: string)

FlowsApi


Delete Flow

FlowsApi.deleteFlow(id: string)

Get Action ID for Flow Message

FlowsApi.getActionIdForFlowMessage(id: string)
Method alias:
FlowsApi.getFlowMessageRelationshipsAction(id: string)

Get Action IDs for Flow

FlowsApi.getActionIdsForFlow(id: string, options)
Method alias:
FlowsApi.getFlowRelationshipsFlowActions(id: string, options)

Get Actions for Flow

FlowsApi.getActionsForFlow(id: string, options)
Method alias:
FlowsApi.getFlowFlowActions(id: string, options)

Get Flow

FlowsApi.getFlow(id: string, options)

Get Flow Action

FlowsApi.getFlowAction(id: string, options)

Get Flow For Flow Action

FlowsApi.getFlowActionFlow(id: string, options)

Get Flow ID for Flow Action

FlowsApi.getFlowIdForFlowAction(id: string)
Method alias:
FlowsApi.getFlowActionRelationshipsFlow(id: string)

Get Flow Message

FlowsApi.getFlowMessage(id: string, options)

Get Flow Action For Message

FlowsApi.getFlowMessageAction(id: string, options)

Get Flow Tags

FlowsApi.getFlowTags(id: string, options)

Get Flows

FlowsApi.getFlows(options)

Get Message IDs for Flow Action

FlowsApi.getMessageIdsForFlowAction(id: string, options)
Method alias:
FlowsApi.getFlowActionRelationshipsMessages(id: string, options)

Get Messages for Flow Action

FlowsApi.getMessagesForFlowAction(id: string, options)
Method alias:
FlowsApi.getFlowActionMessages(id: string, options)

Get Tag IDs for Flow

FlowsApi.getTagIdsForFlow(id: string)
Method alias:
FlowsApi.getFlowRelationshipsTags(id: string)

Get Template for Flow Message

FlowsApi.getTemplateForFlowMessage(id: string, options)
Method alias:
FlowsApi.getFlowMessageTemplate(id: string, options)

Get Template ID for Flow Message

FlowsApi.getTemplateIdForFlowMessage(id: string)
Method alias:
FlowsApi.getFlowMessageRelationshipsTemplate(id: string)

Update Flow Status

FlowsApi.updateFlow(id: string, flowUpdateQuery: FlowUpdateQuery)

FormsApi


Get Form

FormsApi.getForm(id: string, options)

Get Form for Form Version

FormsApi.getFormForFormVersion(id: string, options)
Method alias:
FormsApi.getFormVersionForm(id: string, options)

Get Form ID for Form Version

FormsApi.getFormIdForFormVersion(id: string)
Method alias:
FormsApi.getFormVersionRelationshipsForm(id: string)

Get Form Version

FormsApi.getFormVersion(id: string, options)

Get Forms

FormsApi.getForms(options)

Get Version IDs for Form

FormsApi.getVersionIdsForForm(id: string)
Method alias:
FormsApi.getFormRelationshipsFormVersions(id: string)

Get Versions for Form

FormsApi.getVersionsForForm(id: string, options)
Method alias:
FormsApi.getFormFormVersions(id: string, options)

ImagesApi


Get Image

ImagesApi.getImage(id: string, options)

Get Images

ImagesApi.getImages(options)

Update Image

ImagesApi.updateImage(id: string, imagePartialUpdateQuery: ImagePartialUpdateQuery)

Upload Image From File

ImagesApi.uploadImageFromFile(file: RequestFile, )
Method alias:
ImagesApi.createImageUpload(file: RequestFile, )

Upload Image From URL

ImagesApi.uploadImageFromUrl(imageCreateQuery: ImageCreateQuery)
Method alias:
ImagesApi.createImage(imageCreateQuery: ImageCreateQuery)

ListsApi


Create List

ListsApi.createList(listCreateQuery: ListCreateQuery)

Add Profile To List

ListsApi.createListRelationships(id: string, listMembersAddQuery: ListMembersAddQuery)
Method alias:
ListsApi.createListRelationshipsProfile(id: string, listMembersAddQuery: ListMembersAddQuery)

Delete List

ListsApi.deleteList(id: string)

Remove Profile From List

ListsApi.deleteListRelationships(id: string, listMembersDeleteQuery: ListMembersDeleteQuery)
Method alias:
ListsApi.deleteListRelationshipsProfiles(id: string, listMembersDeleteQuery: ListMembersDeleteQuery)

Get List

ListsApi.getList(id: string, options)

Get List Flow Triggers

ListsApi.getListFlowTriggers(id: string, options)

Get List Profiles

ListsApi.getListProfiles(id: string, options)

Get List Relationships Flow Triggers

ListsApi.getListRelationshipsFlowTriggers(id: string)

Get List Tags

ListsApi.getListTags(id: string, options)

Get Lists

ListsApi.getLists(options)

Get Profile IDs for List

ListsApi.getProfileIdsForList(id: string, options)
Method alias:
ListsApi.getListRelationshipsProfiles(id: string, options)

Get Tag IDs for List

ListsApi.getTagIdsForList(id: string)
Method alias:
ListsApi.getListRelationshipsTags(id: string)

Update List

ListsApi.updateList(id: string, listPartialUpdateQuery: ListPartialUpdateQuery)

MetricsApi


Get Metric

MetricsApi.getMetric(id: string, options)

Get Metric Flow Triggers

MetricsApi.getMetricFlowTriggers(id: string, options)

Get Metric for Metric Property

MetricsApi.getMetricForMetricProperty(id: string, options)
Method alias:
MetricsApi.getMetricPropertyMetric(id: string, options)

Get Metric ID for Metric Property

MetricsApi.getMetricIdForMetricProperty(id: string)
Method alias:
MetricsApi.getMetricPropertyRelationshipsMetric(id: string)

Get Metric Property

MetricsApi.getMetricProperty(id: string, options)

Get Metric Relationships Flow Triggers

MetricsApi.getMetricRelationshipsFlowTriggers(id: string)

Get Metrics

MetricsApi.getMetrics(options)

Get Properties for Metric

MetricsApi.getPropertiesForMetric(id: string, options)
Method alias:
MetricsApi.getMetricMetricProperties(id: string, options)

Get Property IDs for Metric

MetricsApi.getPropertyIdsForMetric(id: string)
Method alias:
MetricsApi.getMetricRelationshipsMetricProperties(id: string)

Query Metric Aggregates

MetricsApi.queryMetricAggregates(metricAggregateQuery: MetricAggregateQuery)
Method alias:
MetricsApi.createMetricAggregate(metricAggregateQuery: MetricAggregateQuery)

ProfilesApi


Bulk Subscribe Profiles

ProfilesApi.bulkSubscribeProfiles(subscriptionCreateJobCreateQuery: SubscriptionCreateJobCreateQuery)
Method alias:
ProfilesApi.subscribeProfiles(subscriptionCreateJobCreateQuery: SubscriptionCreateJobCreateQuery)
Method alias:
ProfilesApi.createProfileSubscriptionBulkCreateJob(subscriptionCreateJobCreateQuery: SubscriptionCreateJobCreateQuery)

Bulk Suppress Profiles

ProfilesApi.bulkSuppressProfiles(suppressionCreateJobCreateQuery: SuppressionCreateJobCreateQuery)
Method alias:
ProfilesApi.suppressProfiles(suppressionCreateJobCreateQuery: SuppressionCreateJobCreateQuery)
Method alias:
ProfilesApi.createProfileSuppressionBulkCreateJob(suppressionCreateJobCreateQuery: SuppressionCreateJobCreateQuery)

Bulk Unsubscribe Profiles

ProfilesApi.bulkUnsubscribeProfiles(subscriptionDeleteJobCreateQuery: SubscriptionDeleteJobCreateQuery)
Method alias:
ProfilesApi.unsubscribeProfiles(subscriptionDeleteJobCreateQuery: SubscriptionDeleteJobCreateQuery)
Method alias:
ProfilesApi.createProfileSubscriptionBulkDeleteJob(subscriptionDeleteJobCreateQuery: SubscriptionDeleteJobCreateQuery)

Bulk Unsuppress Profiles

ProfilesApi.bulkUnsuppressProfiles(suppressionDeleteJobCreateQuery: SuppressionDeleteJobCreateQuery)
Method alias:
ProfilesApi.unsuppressProfiles(suppressionDeleteJobCreateQuery: SuppressionDeleteJobCreateQuery)
Method alias:
ProfilesApi.createProfileSuppressionBulkDeleteJob(suppressionDeleteJobCreateQuery: SuppressionDeleteJobCreateQuery)

Create or Update Profile

ProfilesApi.createOrUpdateProfile(profileUpsertQuery: ProfileUpsertQuery)
Method alias:
ProfilesApi.createProfileImport(profileUpsertQuery: ProfileUpsertQuery)

Create Profile

ProfilesApi.createProfile(profileCreateQuery: ProfileCreateQuery)

Create or Update Push Token

ProfilesApi.createPushToken(pushTokenCreateQuery: PushTokenCreateQuery)

Get Bulk Import Profiles Job

ProfilesApi.getBulkImportProfilesJob(jobId: string, options)
Method alias:
ProfilesApi.getBulkProfileImportJob(jobId: string, options)
Method alias:
ProfilesApi.getProfileBulkImportJob(jobId: string, options)

Get Bulk Import Profiles Jobs

ProfilesApi.getBulkImportProfilesJobs(options)
Method alias:
ProfilesApi.getBulkProfileImportJobs(options)
Method alias:
ProfilesApi.getProfileBulkImportJobs(options)

Get Bulk Suppress Profiles Job

ProfilesApi.getBulkSuppressProfilesJob(jobId: string, options)
Method alias:
ProfilesApi.getProfileSuppressionBulkCreateJob(jobId: string, options)

Get Bulk Suppress Profiles Jobs

ProfilesApi.getBulkSuppressProfilesJobs(options)
Method alias:
ProfilesApi.getProfileSuppressionBulkCreateJobs(options)

Get Bulk Unsuppress Profiles Job

ProfilesApi.getBulkUnsuppressProfilesJob(jobId: string, options)
Method alias:
ProfilesApi.getProfileSuppressionBulkDeleteJob(jobId: string, options)

Get Bulk Unsuppress Profiles Jobs

ProfilesApi.getBulkUnsuppressProfilesJobs(options)
Method alias:
ProfilesApi.getProfileSuppressionBulkDeleteJobs(options)

Get Errors for Bulk Import Profiles Job

ProfilesApi.getErrorsForBulkImportProfilesJob(id: string, options)
Method alias:
ProfilesApi.getBulkProfileImportJobImportErrors(id: string, options)
Method alias:
ProfilesApi.getProfileBulkImportJobImportErrors(id: string, options)

Get List for Bulk Import Profiles Job

ProfilesApi.getListForBulkImportProfilesJob(id: string, options)
Method alias:
ProfilesApi.getBulkProfileImportJobLists(id: string, options)
Method alias:
ProfilesApi.getProfileBulkImportJobLists(id: string, options)

Get List IDs for Bulk Import Profiles Job

ProfilesApi.getListIdsForBulkImportProfilesJob(id: string)
Method alias:
ProfilesApi.getBulkProfileImportJobRelationshipsLists(id: string)
Method alias:
ProfilesApi.getProfileBulkImportJobRelationshipsLists(id: string)

Get List IDs for Profile

ProfilesApi.getListIdsForProfile(id: string)
Method alias:
ProfilesApi.getProfileRelationshipsLists(id: string)

Get Lists for Profile

ProfilesApi.getListsForProfile(id: string, options)
Method alias:
ProfilesApi.getProfileLists(id: string, options)

Get Profile

ProfilesApi.getProfile(id: string, options)

Get Profile IDs for Bulk Import Profiles Job

ProfilesApi.getProfileIdsForBulkImportProfilesJob(id: string, options)
Method alias:
ProfilesApi.getBulkProfileImportJobRelationshipsProfiles(id: string, options)
Method alias:
ProfilesApi.getProfileBulkImportJobRelationshipsProfiles(id: string, options)

Get Profiles

ProfilesApi.getProfiles(options)

Get Profiles for Bulk Import Profiles Job

ProfilesApi.getProfilesForBulkImportProfilesJob(id: string, options)
Method alias:
ProfilesApi.getBulkProfileImportJobProfiles(id: string, options)
Method alias:
ProfilesApi.getProfileBulkImportJobProfiles(id: string, options)

Get Segment IDs for Profile

ProfilesApi.getSegmentIdsForProfile(id: string)
Method alias:
ProfilesApi.getProfileRelationshipsSegments(id: string)

Get Segments for Profile

ProfilesApi.getSegmentsForProfile(id: string, options)
Method alias:
ProfilesApi.getProfileSegments(id: string, options)

Merge Profiles

ProfilesApi.mergeProfiles(profileMergeQuery: ProfileMergeQuery)
Method alias:
ProfilesApi.createProfileMerge(profileMergeQuery: ProfileMergeQuery)

Spawn Bulk Profile Import Job

ProfilesApi.spawnBulkProfileImportJob(profileImportJobCreateQuery: ProfileImportJobCreateQuery)
Method alias:
ProfilesApi.bulkImportProfiles(profileImportJobCreateQuery: ProfileImportJobCreateQuery)
Method alias:
ProfilesApi.createProfileBulkImportJob(profileImportJobCreateQuery: ProfileImportJobCreateQuery)

Update Profile

ProfilesApi.updateProfile(id: string, profilePartialUpdateQuery: ProfilePartialUpdateQuery)

ReportingApi


Query Campaign Values

ReportingApi.queryCampaignValues(campaignValuesRequestDTO: CampaignValuesRequestDTO, options)
Method alias:
ReportingApi.createCampaignValueReport(campaignValuesRequestDTO: CampaignValuesRequestDTO, options)

Query Flow Series

ReportingApi.queryFlowSeries(flowSeriesRequestDTO: FlowSeriesRequestDTO, options)
Method alias:
ReportingApi.createFlowSeryReport(flowSeriesRequestDTO: FlowSeriesRequestDTO, options)

Query Flow Values

ReportingApi.queryFlowValues(flowValuesRequestDTO: FlowValuesRequestDTO, options)
Method alias:
ReportingApi.createFlowValueReport(flowValuesRequestDTO: FlowValuesRequestDTO, options)

Query Form Series

ReportingApi.queryFormSeries(formSeriesRequestDTO: FormSeriesRequestDTO)
Method alias:
ReportingApi.createFormSeryReport(formSeriesRequestDTO: FormSeriesRequestDTO)

Query Form Values

ReportingApi.queryFormValues(formValuesRequestDTO: FormValuesRequestDTO)
Method alias:
ReportingApi.createFormValueReport(formValuesRequestDTO: FormValuesRequestDTO)

Query Segment Series

ReportingApi.querySegmentSeries(segmentSeriesRequestDTO: SegmentSeriesRequestDTO)
Method alias:
ReportingApi.createSegmentSeryReport(segmentSeriesRequestDTO: SegmentSeriesRequestDTO)

Query Segment Values

ReportingApi.querySegmentValues(segmentValuesRequestDTO: SegmentValuesRequestDTO)
Method alias:
ReportingApi.createSegmentValueReport(segmentValuesRequestDTO: SegmentValuesRequestDTO)

ReviewsApi


Get Review

ReviewsApi.getReview(id: string, options)

Get Reviews

ReviewsApi.getReviews(options)

SegmentsApi


Create Segment

SegmentsApi.createSegment(segmentCreateQuery: SegmentCreateQuery)

Delete Segment

SegmentsApi.deleteSegment(id: string)

Get Profile IDs for Segment

SegmentsApi.getProfileIdsForSegment(id: string, options)
Method alias:
SegmentsApi.getSegmentRelationshipsProfiles(id: string, options)

Get Profiles for Segment

SegmentsApi.getProfilesForSegment(id: string, options)
Method alias:
SegmentsApi.getSegmentProfiles(id: string, options)

Get Segment

SegmentsApi.getSegment(id: string, options)

Get Segment Flow Triggers

SegmentsApi.getSegmentFlowTriggers(id: string, options)

Get Segment Relationships Flow Triggers

SegmentsApi.getSegmentRelationshipsFlowTriggers(id: string)

Get Segments

SegmentsApi.getSegments(options)

Get Tag IDs for Segment

SegmentsApi.getTagIdsForSegment(id: string)
Method alias:
SegmentsApi.getSegmentRelationshipsTags(id: string)

Get Tags for Segment

SegmentsApi.getTagsForSegment(id: string, options)
Method alias:
SegmentsApi.getSegmentTags(id: string, options)

Update Segment

SegmentsApi.updateSegment(id: string, segmentPartialUpdateQuery: SegmentPartialUpdateQuery)

TagsApi


Create Tag

TagsApi.createTag(tagCreateQuery: TagCreateQuery)

Create Tag Group

TagsApi.createTagGroup(tagGroupCreateQuery: TagGroupCreateQuery)

Delete Tag

TagsApi.deleteTag(id: string)

Delete Tag Group

TagsApi.deleteTagGroup(id: string)

Get Campaign IDs for Tag

TagsApi.getCampaignIdsForTag(id: string)
Method alias:
TagsApi.getTagRelationshipsCampaigns(id: string)

Get Flow IDs for Tag

TagsApi.getFlowIdsForTag(id: string)
Method alias:
TagsApi.getTagRelationshipsFlows(id: string)

Get List IDs for Tag

TagsApi.getListIdsForTag(id: string)
Method alias:
TagsApi.getTagRelationshipsLists(id: string)

Get Segment IDs for Tag

TagsApi.getSegmentIdsForTag(id: string)
Method alias:
TagsApi.getTagRelationshipsSegments(id: string)

Get Tag

TagsApi.getTag(id: string, options)

Get Tag Group

TagsApi.getTagGroup(id: string, options)

Get Tag Group for Tag

TagsApi.getTagGroupForTag(id: string, options)
Method alias:
TagsApi.getTagTagGroup(id: string, options)

Get Tag Group ID for Tag

TagsApi.getTagGroupIdForTag(id: string)
Method alias:
TagsApi.getTagRelationshipsTagGroup(id: string)

Get Tag Groups

TagsApi.getTagGroups(options)

Get Tag IDs for Tag Group

TagsApi.getTagIdsForTagGroup(id: string)
Method alias:
TagsApi.getTagGroupRelationshipsTags(id: string)

Get Tags

TagsApi.getTags(options)

Get Tags for Tag Group

TagsApi.getTagsForTagGroup(id: string, options)
Method alias:
TagsApi.getTagGroupTags(id: string, options)

Remove Tag from Campaigns

TagsApi.removeTagFromCampaigns(id: string, tagCampaignOp: TagCampaignOp)
Method alias:
TagsApi.deleteTagRelationshipsCampaigns(id: string, tagCampaignOp: TagCampaignOp)

Remove Tag from Flows

TagsApi.removeTagFromFlows(id: string, tagFlowOp: TagFlowOp)
Method alias:
TagsApi.deleteTagRelationshipsFlows(id: string, tagFlowOp: TagFlowOp)

Remove Tag from Lists

TagsApi.removeTagFromLists(id: string, tagListOp: TagListOp)
Method alias:
TagsApi.deleteTagRelationshipsLists(id: string, tagListOp: TagListOp)

Remove Tag from Segments

TagsApi.removeTagFromSegments(id: string, tagSegmentOp: TagSegmentOp)
Method alias:
TagsApi.deleteTagRelationshipsSegments(id: string, tagSegmentOp: TagSegmentOp)

Tag Campaigns

TagsApi.tagCampaigns(id: string, tagCampaignOp: TagCampaignOp)
Method alias:
TagsApi.createTagRelationshipsCampaigns(id: string, tagCampaignOp: TagCampaignOp)
Method alias:
TagsApi.createTagRelationshipsCampaign(id: string, tagCampaignOp: TagCampaignOp)

Tag Flows

TagsApi.tagFlows(id: string, tagFlowOp: TagFlowOp)
Method alias:
TagsApi.createTagRelationshipsFlows(id: string, tagFlowOp: TagFlowOp)
Method alias:
TagsApi.createTagRelationshipsFlow(id: string, tagFlowOp: TagFlowOp)

Tag Lists

TagsApi.tagLists(id: string, tagListOp: TagListOp)
Method alias:
TagsApi.createTagRelationshipsLists(id: string, tagListOp: TagListOp)
Method alias:
TagsApi.createTagRelationshipsList(id: string, tagListOp: TagListOp)

Tag Segments

TagsApi.tagSegments(id: string, tagSegmentOp: TagSegmentOp)
Method alias:
TagsApi.createTagRelationshipsSegments(id: string, tagSegmentOp: TagSegmentOp)
Method alias:
TagsApi.createTagRelationshipsSegment(id: string, tagSegmentOp: TagSegmentOp)

Update Tag

TagsApi.updateTag(id: string, tagUpdateQuery: TagUpdateQuery)

Update Tag Group

TagsApi.updateTagGroup(id: string, tagGroupUpdateQuery: TagGroupUpdateQuery)

TemplatesApi


Clone Template

TemplatesApi.cloneTemplate(templateCloneQuery: TemplateCloneQuery)
Method alias:
TemplatesApi.createTemplateClone(templateCloneQuery: TemplateCloneQuery)

Create Template

TemplatesApi.createTemplate(templateCreateQuery: TemplateCreateQuery)

Create Universal Content

TemplatesApi.createUniversalContent(universalContentCreateQuery: UniversalContentCreateQuery)
Method alias:
TemplatesApi.createTemplateUniversalContent(universalContentCreateQuery: UniversalContentCreateQuery)

Delete Template

TemplatesApi.deleteTemplate(id: string)

Delete Universal Content

TemplatesApi.deleteUniversalContent(id: string)
Method alias:
TemplatesApi.deleteTemplateUniversalContent(id: string)

Get All Universal Content

TemplatesApi.getAllUniversalContent(options)
Method alias:
TemplatesApi.getTemplateUniversalContent(options)

Get Template

TemplatesApi.getTemplate(id: string, options)

Get Templates

TemplatesApi.getTemplates(options)

Get Universal Content

TemplatesApi.getUniversalContent(id: string, options)

Render Template

TemplatesApi.renderTemplate(templateRenderQuery: TemplateRenderQuery)
Method alias:
TemplatesApi.createTemplateRender(templateRenderQuery: TemplateRenderQuery)

Update Template

TemplatesApi.updateTemplate(id: string, templateUpdateQuery: TemplateUpdateQuery)

Update Universal Content

TemplatesApi.updateUniversalContent(id: string, universalContentPartialUpdateQuery: UniversalContentPartialUpdateQuery)
Method alias:
TemplatesApi.updateTemplateUniversalContent(id: string, universalContentPartialUpdateQuery: UniversalContentPartialUpdateQuery)

TrackingSettingsApi


Get Tracking Setting

TrackingSettingsApi.getTrackingSetting(id: string, options)

Get Tracking Settings

TrackingSettingsApi.getTrackingSettings(options)

Update Tracking Setting

TrackingSettingsApi.updateTrackingSetting(id: string, trackingSettingPartialUpdateQuery: TrackingSettingPartialUpdateQuery)

WebhooksApi


Create Webhook

WebhooksApi.createWebhook(webhookCreateQuery: WebhookCreateQuery)

Delete Webhook

WebhooksApi.deleteWebhook(id: string)

Get Webhook

WebhooksApi.getWebhook(id: string, options)

Get Webhook Topic

WebhooksApi.getWebhookTopic(id: string)

Get Webhook Topics

WebhooksApi.getWebhookTopics()

Get Webhooks

WebhooksApi.getWebhooks(options)

Update Webhook

WebhooksApi.updateWebhook(id: string, webhookPartialUpdateQuery: WebhookPartialUpdateQuery)

Appendix

Refresher on catching exceptions:


try {
    await YOUR_CALL_HERE
} catch (e) {
    console.log(e)
}

Namespace

In the interest of making the SDK follow conventions, we made the following namespace changes relative to the language agnostic resources up top.

  1. dashes - are removed in favor of camelCase
  2. all other non-alphanumeric symbols, including spaces, are removed.

For example:

Parameters & Arguments

The parameters follow the same naming conventions as the resource groups and operations.

We stick to the following convention for parameters/arguments

  1. All query and path params that are tagged as required in the docs are passed as positional args.
  2. There is no need to pass in your private apiKey for any operations, as it is defined upon api instantiation; public key is still required where its used.