📊 Metrics module Email API
This module allows you to retrieve metrics for messages sent from your account.
Methods
Type declarations
ts
class Metrics {
constructor (protected mailchannels: MailChannelsClient);
async engagement (options?: MetricsOptions): Promise<MetricsEngagementResponse>;
async performance (options?: MetricsOptions): Promise<MetricsPerformanceResponse>;
async recipientBehaviour (options?: MetricsOptions): Promise<MetricsRecipientBehaviourResponse>;
async volume (options?: MetricsOptions): Promise<MetricsVolumeResponse>;
async usage (): Promise<MetricsUsageResponse>;
async senders (type: MetricsSendersType, options?: MetricsSendersOptions): Promise<MetricsSendersResponse>;
}All type declarations
Response type declarations
ts
interface ErrorResponse {
message: string;
statusCode: number | null;
type: ErrorType;
}ts
type DataResponse<T> = {
data: T;
error: null;
} | {
data: null;
error: ErrorResponse;
};Shared metrics type declarations
ts
interface MetricsOptions {
startTime?: string;
endTime?: string;
campaignId?: string;
interval?: "hour" | "day" | "week" | "month";
}ts
interface MetricsBucket {
count: number;
periodStart: string;
}Engagement type declarations
ts
interface MetricsEngagement {
buckets: {
click: MetricsBucket[];
clickTrackingDelivered: MetricsBucket[];
open: MetricsBucket[];
openTrackingDelivered: MetricsBucket[];
};
click: number;
clickTrackingDelivered: number;
endTime: string;
open: number;
openTrackingDelivered: number;
startTime: string;
}ts
type MetricsEngagementResponse = DataResponse<MetricsEngagement>;Performance type declarations
ts
interface MetricsPerformance {
bounced: number;
buckets: {
bounced: MetricsBucket[];
delivered: MetricsBucket[];
processed: MetricsBucket[];
};
delivered: number;
endTime: string;
processed: number;
startTime: string;
}ts
type MetricsPerformanceResponse = DataResponse<MetricsPerformance>;Recipient Behaviour type declarations
ts
interface MetricsRecipientBehaviour {
buckets: {
unsubscribeDelivered: MetricsBucket[];
unsubscribed: MetricsBucket[];
};
endTime: string;
startTime: string;
unsubscribeDelivered: number;
unsubscribed: number;
}ts
type MetricsRecipientBehaviourResponse = DataResponse<MetricsRecipientBehaviour>;Volume type declarations
ts
interface MetricsVolume {
buckets: {
delivered: MetricsBucket[];
dropped: MetricsBucket[];
processed: MetricsBucket[];
};
delivered: number;
dropped: number;
endTime: string;
processed: number;
startTime: string;
}ts
type MetricsVolumeResponse = DataResponse<MetricsVolume>;Usage type declarations
ts
type MetricsUsageResponse = DataResponse<{
endDate?: string;
startDate?: string;
total: number;
}>;Senders type declarations
ts
type MetricsSendersType = "sub-accounts" | "campaigns";ts
interface MetricsSendersOptions {
startTime?: string;
endTime?: string;
limit?: number;
offset?: number;
sortOrder?: "asc" | "desc";
}ts
interface MetricsSenders {
endTime: string;
limit: number;
offset: number;
senders: {
bounced: number;
delivered: number;
dropped: number;
name: string;
processed: number;
}[];
startTime: string;
total: number;
}ts
type MetricsSendersResponse = DataResponse<MetricsSenders>;Source
Source • Playground • Docs • Tests