Skip to content

Rule.io SDK


Rule.io SDK / client/src / RuleClient

Class: RuleClient

Defined in: client/src/client.ts:104

Rule.io API Client.

Example

typescript
const client = new RuleClient({ apiKey: process.env.RULE_API_KEY! });

// Namespaced (recommended) API:
await client.subscribers.create({ email: 'a@b.c', status: 'ACTIVE' });
await client.automations.list({ active: true });
await client.brandStyles.get(42);
await client.recipients.segments.list();

// Flat API (deprecated, kept for back-compat):
await client.createAutomation({ name: 'Welcome' });
await client.syncSubscriber({ email: 'a@b.c', tags: ['Newsletter'] }, 'Booking');

Extends

  • BaseResource

Constructors

Constructor

new RuleClient(config): RuleClient

Defined in: client/src/client.ts:107

Parameters

config

string | RuleClientConfig

Returns

RuleClient

Overrides

BaseResource.constructor

Accessors

account

Get Signature

get account(): AccountClient

Defined in: client/src/client.ts:121

Returns

AccountClient


analytics

Get Signature

get analytics(): AnalyticsClient

Defined in: client/src/client.ts:168

Returns

AnalyticsClient


apiKeys

Get Signature

get apiKeys(): ApiKeysClient

Defined in: client/src/client.ts:160

Returns

ApiKeysClient


automations

Get Signature

get automations(): AutomationsClient

Defined in: client/src/client.ts:136

Returns

AutomationsClient


brandStyles

Get Signature

get brandStyles(): BrandStylesClient

Defined in: client/src/client.ts:156

Returns

BrandStylesClient


campaigns

Get Signature

get campaigns(): CampaignsClient

Defined in: client/src/client.ts:152

Returns

CampaignsClient


customField

Get Signature

get customField(): CustomFieldClient

Defined in: client/src/client.ts:176

Returns

CustomFieldClient


dynamicSets

Get Signature

get dynamicSets(): DynamicSetsClient

Defined in: client/src/client.ts:148

Returns

DynamicSetsClient


exports

Get Signature

get exports(): ExportsClient

Defined in: client/src/client.ts:164

Returns

ExportsClient


messages

Get Signature

get messages(): MessagesClient

Defined in: client/src/client.ts:140

Returns

MessagesClient


recipients

Get Signature

get recipients(): RecipientsClient

Defined in: client/src/client.ts:172

Returns

RecipientsClient


subscribers

Get Signature

get subscribers(): SubscribersClient

Defined in: client/src/client.ts:125

Returns

SubscribersClient


tags

Get Signature

get tags(): TagsClient

Defined in: client/src/client.ts:132

Returns

TagsClient


templates

Get Signature

get templates(): TemplatesClient

Defined in: client/src/client.ts:144

Returns

TemplatesClient

Methods

addSubscriberTags()

addSubscriberTags(email, tags, triggerAutomation?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:225

Add tags to a subscriber via the v2 endpoint.

Parameters

email

string

tags

string[]

triggerAutomation?

false | "force" | "reset"

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.addTags() (v3) instead.


addSubscriberTagsV3()

addSubscriberTagsV3(subscriber, request, identifiedBy?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:322

Parameters

subscriber

string | number

request
automation?

"force" | "reset" | "send" | null

syncSubscriber?

boolean

tags

(string | number)[]

identifiedBy?

V2SubscriberIdentifierBy = 'email'

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.addSubscriberTags() instead.


blockSubscribers()

blockSubscribers(subscribers, callbackUrl?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:296

Parameters

subscribers

SubscriberIdentifier[]

callbackUrl?

string

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.block() instead.


bulkAddTags()

bulkAddTags(request): Promise<RuleApiResponse>

Defined in: client/src/client.ts:312

Parameters

request

BulkTagsPayload

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.bulkAddTags() instead.


bulkRemoveTags()

bulkRemoveTags(request): Promise<RuleApiResponse>

Defined in: client/src/client.ts:317

Parameters

request

BulkTagsPayload

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.bulkRemoveTags() instead.


createApiKey()

createApiKey(payload): Promise<ApiKey>

Defined in: client/src/client.ts:366

Parameters

payload

CreateApiKeyPayload

Returns

Promise<ApiKey>

Deprecated

Use client.apiKeys.create() instead.


createAutomationEmail()

createAutomationEmail(config): Promise<CreateAutomationEmailResult>

Defined in: client/src/client.ts:418

Create a complete automation email workflow: automation → message → template → dynamic-set

Cleans up previously-created resources if any step fails.

Parameters

config

CreateAutomationEmailConfig

Returns

Promise<CreateAutomationEmailResult>

Deprecated

Will be relocated to consumers in a follow-up. Inline the orchestration in your call site using the namespaced clients.


createCampaignEmail()

createCampaignEmail(config): Promise<CreateCampaignEmailResult>

Defined in: client/src/client.ts:589

Create a complete campaign email in one call: campaign → message → template → dynamic-set

Cleans up on failure.

Parameters

config

CreateCampaignEmailConfig

Returns

Promise<CreateCampaignEmailResult>

Deprecated

Will be relocated to consumers in a follow-up.


createSubscriberV3()

createSubscriberV3(subscriber): Promise<Subscriber>

Defined in: client/src/client.ts:277

Parameters

subscriber

CreateSubscriberPayload

Returns

Promise<Subscriber>

Deprecated

Use client.subscribers.create() instead.


deleteApiKey()

deleteApiKey(apiKeyId): Promise<void>

Defined in: client/src/client.ts:376

Parameters

apiKeyId

number

Returns

Promise<void>

Deprecated

Use client.apiKeys.delete() instead.


deleteSubscriber()

deleteSubscriber(email): Promise<RuleApiResponse>

Defined in: client/src/client.ts:267

Delete a subscriber via the v2 endpoint.

Parameters

email

string

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.delete() (v3) instead.


deleteSubscriberV3()

deleteSubscriberV3(subscriber, identifiedBy?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:284

Parameters

subscriber

string | number

identifiedBy?

V2SubscriberIdentifierBy = 'email'

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.deleteByEmail() / deleteById() / deleteByPhoneNumber() / deleteByCustomIdentifier() instead.


exportDispatchers()

exportDispatchers(params): Promise<ExportDispatcherRecord[]>

Defined in: client/src/client.ts:383

Parameters

params

ExportDateRange

Returns

Promise<ExportDispatcherRecord[]>

Deprecated

Use client.exports.dispatchers() instead.


exportStatistics()

exportStatistics(params): Promise<ExportStatisticsResult>

Defined in: client/src/client.ts:388

Parameters

params

ExportStatisticsParams

Returns

Promise<ExportStatisticsResult>

Deprecated

Use client.exports.statistics() instead.


exportSubscribers()

exportSubscribers(params): Promise<ExportSubscriberRecord[]>

Defined in: client/src/client.ts:393

Parameters

params

ExportDateRange

Returns

Promise<ExportSubscriberRecord[]>

Deprecated

Use client.exports.subscribers() instead.


getAnalytics()

getAnalytics(params): Promise<AnalyticsResult>

Defined in: client/src/client.ts:400

Parameters

params

AnalyticsParams

Returns

Promise<AnalyticsResult>

Deprecated

Use client.analytics.get() instead.


getApiKey()

getApiKey(): string

Defined in: client/src/client.ts:115

Get the API key (useful for passing to other functions).

Returns

string


getSubscriber()

getSubscriber(email): Promise<Subscriber | null>

Defined in: client/src/client.ts:204

Parameters

email

string

Returns

Promise<Subscriber | null>

Deprecated

Use client.subscribers.getByEmail() instead.


getSubscriberFields()

getSubscriberFields(email): Promise<CustomFieldGroupDataRecord | null>

Defined in: client/src/client.ts:209

Parameters

email

string

Returns

Promise<CustomFieldGroupDataRecord | null>

Deprecated

Use client.subscribers.listCustomFieldData() instead.


getSubscriberTags()

getSubscriberTags(email): Promise<SubscriberTag[] | null>

Defined in: client/src/client.ts:216

Parameters

email

string

Returns

Promise<SubscriberTag[] | null>

Deprecated

Use client.subscribers.getSubscriberTags() instead.


listApiKeys()

listApiKeys(): Promise<ApiKey[]>

Defined in: client/src/client.ts:361

Returns

Promise<ApiKey[]>

Deprecated

Use client.apiKeys.list() instead.


removeSubscriberTags()

removeSubscriberTags(email, tags): Promise<RuleApiResponse>

Defined in: client/src/client.ts:246

Remove tags from a subscriber via the v2 endpoint (one DELETE per tag).

Parameters

email

string

tags

string[]

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.removeSubscriberTag() for single-tag removal, or client.subscribers.bulkRemoveSubscriberTags() for bulk operations (both v3).


removeSubscriberTagV3()

removeSubscriberTagV3(subscriber, tag, identifiedBy?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:344

Parameters

subscriber

string | number

tag

string | number

identifiedBy?

V2SubscriberIdentifierBy = 'email'

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.removeSubscriberTag() instead.


syncSubscriber()

syncSubscriber(subscriber, fieldGroupPrefix): Promise<Subscriber>

Defined in: client/src/client.ts:192

Parameters

subscriber
email

string

fields?

Record<string, string | number | undefined>

tags?

string[]

fieldGroupPrefix

string

Returns

Promise<Subscriber>

Deprecated

Use client.subscribers.sync({ subscriber: { email }, customFieldData, tags }) instead.


unblockSubscribers()

unblockSubscribers(subscribers, callbackUrl?): Promise<RuleApiResponse>

Defined in: client/src/client.ts:304

Parameters

subscribers

SubscriberIdentifier[]

callbackUrl?

string

Returns

Promise<RuleApiResponse>

Deprecated

Use client.subscribers.unblock() instead.


updateApiKey()

updateApiKey(apiKeyId, payload): Promise<ApiKey>

Defined in: client/src/client.ts:371

Parameters

apiKeyId

number

payload

UpdateApiKeyPayload

Returns

Promise<ApiKey>

Deprecated

Use client.apiKeys.update() instead.