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.