@unsent/sdk 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
 
3
3
  type ErrorResponse = {
4
- message: string;
5
- code: string;
4
+ message: string;
5
+ code: string;
6
6
  };
7
7
 
8
8
  /**
@@ -31,6 +31,23 @@ interface paths {
31
31
  patch?: never;
32
32
  trace?: never;
33
33
  };
34
+ "/v1/version": {
35
+ parameters: {
36
+ query?: never;
37
+ header?: never;
38
+ path?: never;
39
+ cookie?: never;
40
+ };
41
+ /** @description Retrieve API version information */
42
+ get: operations["getVersion"];
43
+ put?: never;
44
+ post?: never;
45
+ delete?: never;
46
+ options?: never;
47
+ head?: never;
48
+ patch?: never;
49
+ trace?: never;
50
+ };
34
51
  "/v1/api-keys": {
35
52
  parameters: {
36
53
  query?: never;
@@ -100,6 +117,23 @@ interface paths {
100
117
  patch?: never;
101
118
  trace?: never;
102
119
  };
120
+ "/v1/activity": {
121
+ parameters: {
122
+ query?: never;
123
+ header?: never;
124
+ path?: never;
125
+ cookie?: never;
126
+ };
127
+ /** @description Retrieve activity feed with email events and email details */
128
+ get: operations["getActivity"];
129
+ put?: never;
130
+ post?: never;
131
+ delete?: never;
132
+ options?: never;
133
+ head?: never;
134
+ patch?: never;
135
+ trace?: never;
136
+ };
103
137
  "/v1/analytics/time-series": {
104
138
  parameters: {
105
139
  query?: never;
@@ -134,6 +168,57 @@ interface paths {
134
168
  patch?: never;
135
169
  trace?: never;
136
170
  };
171
+ "/v1/events": {
172
+ parameters: {
173
+ query?: never;
174
+ header?: never;
175
+ path?: never;
176
+ cookie?: never;
177
+ };
178
+ /** @description Retrieve all email events */
179
+ get: operations["getEvents"];
180
+ put?: never;
181
+ post?: never;
182
+ delete?: never;
183
+ options?: never;
184
+ head?: never;
185
+ patch?: never;
186
+ trace?: never;
187
+ };
188
+ "/v1/stats": {
189
+ parameters: {
190
+ query?: never;
191
+ header?: never;
192
+ path?: never;
193
+ cookie?: never;
194
+ };
195
+ /** @description Retrieve email statistics */
196
+ get: operations["getStats"];
197
+ put?: never;
198
+ post?: never;
199
+ delete?: never;
200
+ options?: never;
201
+ head?: never;
202
+ patch?: never;
203
+ trace?: never;
204
+ };
205
+ "/v1/metrics": {
206
+ parameters: {
207
+ query?: never;
208
+ header?: never;
209
+ path?: never;
210
+ cookie?: never;
211
+ };
212
+ /** @description Retrieve performance metrics */
213
+ get: operations["getMetrics"];
214
+ put?: never;
215
+ post?: never;
216
+ delete?: never;
217
+ options?: never;
218
+ head?: never;
219
+ patch?: never;
220
+ trace?: never;
221
+ };
137
222
  "/v1/domains": {
138
223
  parameters: {
139
224
  query?: never;
@@ -152,16 +237,16 @@ interface paths {
152
237
  patch?: never;
153
238
  trace?: never;
154
239
  };
155
- "/v1/domains/{id}/verify": {
240
+ "/v1/domains/{id}/analytics": {
156
241
  parameters: {
157
242
  query?: never;
158
243
  header?: never;
159
244
  path?: never;
160
245
  cookie?: never;
161
246
  };
162
- get?: never;
163
- /** @description Trigger domain verification */
164
- put: operations["verifyDomain"];
247
+ /** @description Retrieve analytics for a specific domain */
248
+ get: operations["getDomainAnalytics"];
249
+ put?: never;
165
250
  post?: never;
166
251
  delete?: never;
167
252
  options?: never;
@@ -169,64 +254,53 @@ interface paths {
169
254
  patch?: never;
170
255
  trace?: never;
171
256
  };
172
- "/v1/domains/{id}": {
257
+ "/v1/domains/{id}/stats": {
173
258
  parameters: {
174
259
  query?: never;
175
260
  header?: never;
176
261
  path?: never;
177
262
  cookie?: never;
178
263
  };
179
- /** @description Retrieve domain details by ID */
180
- get: operations["getDomain"];
264
+ /** @description Retrieve statistics for a specific domain */
265
+ get: operations["getDomainStats"];
181
266
  put?: never;
182
267
  post?: never;
183
- /** @description Delete a domain by ID */
184
- delete: operations["deleteDomain"];
268
+ delete?: never;
185
269
  options?: never;
186
270
  head?: never;
187
271
  patch?: never;
188
272
  trace?: never;
189
273
  };
190
- "/v1/emails/{emailId}": {
274
+ "/v1/domains/{id}/verify": {
191
275
  parameters: {
192
276
  query?: never;
193
277
  header?: never;
194
278
  path?: never;
195
279
  cookie?: never;
196
280
  };
197
- /** @description Retrieve email details by ID */
198
- get: operations["getEmail"];
199
- put?: never;
281
+ get?: never;
282
+ /** @description Trigger domain verification */
283
+ put: operations["verifyDomain"];
200
284
  post?: never;
201
285
  delete?: never;
202
286
  options?: never;
203
287
  head?: never;
204
- /** @description Update a scheduled email */
205
- patch: operations["updateEmail"];
288
+ patch?: never;
206
289
  trace?: never;
207
290
  };
208
- "/v1/emails": {
291
+ "/v1/domains/{id}": {
209
292
  parameters: {
210
293
  query?: never;
211
294
  header?: never;
212
295
  path?: never;
213
296
  cookie?: never;
214
297
  };
215
- /** @description Retrieve a list of sent emails */
216
- get: operations["listEmails"];
298
+ /** @description Retrieve domain details by ID */
299
+ get: operations["getDomain"];
217
300
  put?: never;
218
- /** @description Send an email.
219
- *
220
- * You can send an email by providing the `subject`, `html`, and `text` directly, or by using a `templateId`.
221
- *
222
- * **Using Templates:**
223
- * - If `templateId` is provided, `subject`, `html`, and `text` are optional. The template's values will be used.
224
- * - You can override the template's subject or body by providing them in the request.
225
- * - Use the `variables` object to replace placeholders in the template (e.g. `{{name}}`).
226
- * - The `templateId` must belong to your team.
227
- * */
228
- post: operations["sendEmail"];
229
- delete?: never;
301
+ post?: never;
302
+ /** @description Delete a domain by ID */
303
+ delete: operations["deleteDomain"];
230
304
  options?: never;
231
305
  head?: never;
232
306
  patch?: never;
@@ -283,6 +357,33 @@ interface paths {
283
357
  patch?: never;
284
358
  trace?: never;
285
359
  };
360
+ "/v1/emails": {
361
+ parameters: {
362
+ query?: never;
363
+ header?: never;
364
+ path?: never;
365
+ cookie?: never;
366
+ };
367
+ /** @description Retrieve a list of sent emails */
368
+ get: operations["listEmails"];
369
+ put?: never;
370
+ /** @description Send an email.
371
+ *
372
+ * You can send an email by providing the `subject`, `html`, and `text` directly, or by using a `templateId`.
373
+ *
374
+ * **Using Templates:**
375
+ * - If `templateId` is provided, `subject`, `html`, and `text` are optional. The template's values will be used.
376
+ * - You can override the template's subject or body by providing them in the request.
377
+ * - Use the `variables` object to replace placeholders in the template (e.g. `{{name}}`).
378
+ * - The `templateId` must belong to your team.
379
+ * */
380
+ post: operations["sendEmail"];
381
+ delete?: never;
382
+ options?: never;
383
+ head?: never;
384
+ patch?: never;
385
+ trace?: never;
386
+ };
286
387
  "/v1/emails/batch": {
287
388
  parameters: {
288
389
  query?: never;
@@ -300,6 +401,41 @@ interface paths {
300
401
  patch?: never;
301
402
  trace?: never;
302
403
  };
404
+ "/v1/emails/{emailId}/events": {
405
+ parameters: {
406
+ query?: never;
407
+ header?: never;
408
+ path?: never;
409
+ cookie?: never;
410
+ };
411
+ /** @description Retrieve all events for a specific email */
412
+ get: operations["getEmailEvents"];
413
+ put?: never;
414
+ post?: never;
415
+ delete?: never;
416
+ options?: never;
417
+ head?: never;
418
+ patch?: never;
419
+ trace?: never;
420
+ };
421
+ "/v1/emails/{emailId}": {
422
+ parameters: {
423
+ query?: never;
424
+ header?: never;
425
+ path?: never;
426
+ cookie?: never;
427
+ };
428
+ /** @description Retrieve email details by ID */
429
+ get: operations["getEmail"];
430
+ put?: never;
431
+ post?: never;
432
+ delete?: never;
433
+ options?: never;
434
+ head?: never;
435
+ /** @description Update a scheduled email */
436
+ patch: operations["updateEmail"];
437
+ trace?: never;
438
+ };
303
439
  "/v1/emails/{emailId}/cancel": {
304
440
  parameters: {
305
441
  query?: never;
@@ -485,7 +621,7 @@ interface paths {
485
621
  path?: never;
486
622
  cookie?: never;
487
623
  };
488
- /** @description Retrieve a list of templates */
624
+ /** @description Retrieve all templates */
489
625
  get: operations["getTemplates"];
490
626
  put?: never;
491
627
  /** @description Create a new email template */
@@ -503,7 +639,7 @@ interface paths {
503
639
  path?: never;
504
640
  cookie?: never;
505
641
  };
506
- /** @description Retrieve template details by ID */
642
+ /** @description Retrieve a template by ID */
507
643
  get: operations["getTemplate"];
508
644
  put?: never;
509
645
  post?: never;
@@ -511,7 +647,7 @@ interface paths {
511
647
  delete: operations["deleteTemplate"];
512
648
  options?: never;
513
649
  head?: never;
514
- /** @description Update a template */
650
+ /** @description Update a template by ID */
515
651
  patch: operations["updateTemplate"];
516
652
  trace?: never;
517
653
  };
@@ -550,6 +686,94 @@ interface paths {
550
686
  patch?: never;
551
687
  trace?: never;
552
688
  };
689
+ "/v1/webhooks": {
690
+ parameters: {
691
+ query?: never;
692
+ header?: never;
693
+ path?: never;
694
+ cookie?: never;
695
+ };
696
+ /** @description List all webhooks for the current team */
697
+ get: operations["listWebhooks"];
698
+ put?: never;
699
+ /** @description Create a new webhook for the current team */
700
+ post: operations["createWebhook"];
701
+ delete?: never;
702
+ options?: never;
703
+ head?: never;
704
+ patch?: never;
705
+ trace?: never;
706
+ };
707
+ "/v1/webhooks/{id}": {
708
+ parameters: {
709
+ query?: never;
710
+ header?: never;
711
+ path?: never;
712
+ cookie?: never;
713
+ };
714
+ /** @description Get a specific webhook */
715
+ get: operations["getWebhook"];
716
+ put?: never;
717
+ post?: never;
718
+ /** @description Delete a webhook */
719
+ delete: operations["deleteWebhook"];
720
+ options?: never;
721
+ head?: never;
722
+ /** @description Update a webhook */
723
+ patch: operations["updateWebhook"];
724
+ trace?: never;
725
+ };
726
+ "/v1/webhooks/{id}/test": {
727
+ parameters: {
728
+ query?: never;
729
+ header?: never;
730
+ path?: never;
731
+ cookie?: never;
732
+ };
733
+ get?: never;
734
+ put?: never;
735
+ /** @description Trigger a test event for a webhook */
736
+ post: operations["testWebhook"];
737
+ delete?: never;
738
+ options?: never;
739
+ head?: never;
740
+ patch?: never;
741
+ trace?: never;
742
+ };
743
+ "/v1/team": {
744
+ parameters: {
745
+ query?: never;
746
+ header?: never;
747
+ path?: never;
748
+ cookie?: never;
749
+ };
750
+ /** @description Retrieve current team information */
751
+ get: operations["getTeam"];
752
+ put?: never;
753
+ post?: never;
754
+ delete?: never;
755
+ options?: never;
756
+ head?: never;
757
+ patch?: never;
758
+ trace?: never;
759
+ };
760
+ "/v1/teams": {
761
+ parameters: {
762
+ query?: never;
763
+ header?: never;
764
+ path?: never;
765
+ cookie?: never;
766
+ };
767
+ /** @description Get all teams for the current user */
768
+ get: operations["getTeams"];
769
+ put?: never;
770
+ post?: never;
771
+ delete?: never;
772
+ options?: never;
773
+ head?: never;
774
+ patch?: never;
775
+ trace?: never;
776
+ };
553
777
  }
554
778
  interface operations {
555
779
  getHealth: {
@@ -576,7 +800,7 @@ interface operations {
576
800
  };
577
801
  };
578
802
  };
579
- getApiKeys: {
803
+ getVersion: {
580
804
  parameters: {
581
805
  query?: never;
582
806
  header?: never;
@@ -585,34 +809,70 @@ interface operations {
585
809
  };
586
810
  requestBody?: never;
587
811
  responses: {
588
- /** @description List API Keys */
812
+ /** @description API version information */
589
813
  200: {
590
814
  headers: {
591
815
  [name: string]: unknown;
592
816
  };
593
817
  content: {
594
818
  "application/json": {
595
- id: string;
596
- name: string;
597
- partialToken: string;
598
- lastUsed?: string | null;
599
- createdAt: string;
600
- permission: string;
601
- }[];
819
+ version: string;
820
+ environment?: string;
821
+ nodeVersion: string;
822
+ platform: string;
823
+ arch: string;
824
+ timestamp: string;
825
+ versions: {
826
+ [key: string]: string;
827
+ };
828
+ memory: {
829
+ rss: number;
830
+ heapTotal: number;
831
+ heapUsed: number;
832
+ external: number;
833
+ };
834
+ };
602
835
  };
603
836
  };
604
837
  };
605
838
  };
606
- createApiKey: {
839
+ getApiKeys: {
607
840
  parameters: {
608
841
  query?: never;
609
842
  header?: never;
610
843
  path?: never;
611
844
  cookie?: never;
612
845
  };
613
- requestBody?: {
614
- content: {
615
- "application/json": {
846
+ requestBody?: never;
847
+ responses: {
848
+ /** @description List API Keys */
849
+ 200: {
850
+ headers: {
851
+ [name: string]: unknown;
852
+ };
853
+ content: {
854
+ "application/json": {
855
+ id: string;
856
+ name: string;
857
+ partialToken: string;
858
+ lastUsed?: string | null;
859
+ createdAt: string;
860
+ permission: string;
861
+ }[];
862
+ };
863
+ };
864
+ };
865
+ };
866
+ createApiKey: {
867
+ parameters: {
868
+ query?: never;
869
+ header?: never;
870
+ path?: never;
871
+ cookie?: never;
872
+ };
873
+ requestBody?: {
874
+ content: {
875
+ "application/json": {
616
876
  name: string;
617
877
  /**
618
878
  * @default FULL
@@ -629,7 +889,9 @@ interface operations {
629
889
  [name: string]: unknown;
630
890
  };
631
891
  content: {
632
- "application/json": Record<string, never>;
892
+ "application/json": {
893
+ token: string;
894
+ };
633
895
  };
634
896
  };
635
897
  };
@@ -671,7 +933,13 @@ interface operations {
671
933
  [name: string]: unknown;
672
934
  };
673
935
  content: {
674
- "application/json": Record<string, never>;
936
+ "application/json": {
937
+ id: string;
938
+ name: string;
939
+ plan: string;
940
+ dailyEmailLimit: number;
941
+ monthlyEmailLimit: number;
942
+ };
675
943
  };
676
944
  };
677
945
  };
@@ -686,6 +954,38 @@ interface operations {
686
954
  requestBody?: never;
687
955
  responses: {
688
956
  /** @description Get Analytics */
957
+ 200: {
958
+ headers: {
959
+ [name: string]: unknown;
960
+ };
961
+ content: {
962
+ "application/json": {
963
+ day: {
964
+ type: string;
965
+ sent: number;
966
+ }[];
967
+ month: {
968
+ type: string;
969
+ sent: number;
970
+ }[];
971
+ };
972
+ };
973
+ };
974
+ };
975
+ };
976
+ getActivity: {
977
+ parameters: {
978
+ query?: {
979
+ page?: number;
980
+ limit?: number;
981
+ };
982
+ header?: never;
983
+ path?: never;
984
+ cookie?: never;
985
+ };
986
+ requestBody?: never;
987
+ responses: {
988
+ /** @description Activity feed with email events */
689
989
  200: {
690
990
  headers: {
691
991
  [name: string]: unknown;
@@ -694,6 +994,84 @@ interface operations {
694
994
  "application/json": Record<string, never>;
695
995
  };
696
996
  };
997
+ /** @description Bad Request */
998
+ 400: {
999
+ headers: {
1000
+ [name: string]: unknown;
1001
+ };
1002
+ content: {
1003
+ "application/json": {
1004
+ code: string;
1005
+ message: string;
1006
+ docs?: string;
1007
+ };
1008
+ };
1009
+ };
1010
+ /** @description Unauthorized */
1011
+ 401: {
1012
+ headers: {
1013
+ [name: string]: unknown;
1014
+ };
1015
+ content: {
1016
+ "application/json": {
1017
+ code: string;
1018
+ message: string;
1019
+ docs?: string;
1020
+ };
1021
+ };
1022
+ };
1023
+ /** @description Forbidden */
1024
+ 403: {
1025
+ headers: {
1026
+ [name: string]: unknown;
1027
+ };
1028
+ content: {
1029
+ "application/json": {
1030
+ code: string;
1031
+ message: string;
1032
+ docs?: string;
1033
+ };
1034
+ };
1035
+ };
1036
+ /** @description Not Found */
1037
+ 404: {
1038
+ headers: {
1039
+ [name: string]: unknown;
1040
+ };
1041
+ content: {
1042
+ "application/json": {
1043
+ code: string;
1044
+ message: string;
1045
+ docs?: string;
1046
+ };
1047
+ };
1048
+ };
1049
+ /** @description Too Many Requests */
1050
+ 429: {
1051
+ headers: {
1052
+ [name: string]: unknown;
1053
+ };
1054
+ content: {
1055
+ "application/json": {
1056
+ code: string;
1057
+ message: string;
1058
+ docs?: string;
1059
+ };
1060
+ };
1061
+ };
1062
+ /** @description Internal Server Error */
1063
+ 500: {
1064
+ headers: {
1065
+ [name: string]: unknown;
1066
+ };
1067
+ content: {
1068
+ "application/json": {
1069
+ code: string;
1070
+ message: string;
1071
+ docs?: string;
1072
+ };
1073
+ };
1074
+ };
697
1075
  };
698
1076
  };
699
1077
  getTimeSeries: {
@@ -741,152 +1119,254 @@ interface operations {
741
1119
  };
742
1120
  };
743
1121
  };
744
- getDomains: {
1122
+ getEvents: {
745
1123
  parameters: {
746
- query?: never;
1124
+ query?: {
1125
+ page?: number;
1126
+ limit?: number;
1127
+ status?: "SCHEDULED" | "QUEUED" | "SENT" | "DELIVERY_DELAYED" | "BOUNCED" | "REJECTED" | "RENDERING_FAILURE" | "DELIVERED" | "OPENED" | "CLICKED" | "COMPLAINED" | "FAILED" | "CANCELLED" | "SUPPRESSED";
1128
+ startDate?: string;
1129
+ };
747
1130
  header?: never;
748
1131
  path?: never;
749
1132
  cookie?: never;
750
1133
  };
751
1134
  requestBody?: never;
752
1135
  responses: {
753
- /** @description Retrieve domains accessible by the API key */
1136
+ /** @description List of email events */
754
1137
  200: {
1138
+ headers: {
1139
+ [name: string]: unknown;
1140
+ };
1141
+ content: {
1142
+ "application/json": Record<string, never>;
1143
+ };
1144
+ };
1145
+ /** @description Bad Request */
1146
+ 400: {
755
1147
  headers: {
756
1148
  [name: string]: unknown;
757
1149
  };
758
1150
  content: {
759
1151
  "application/json": {
760
- /**
761
- * @description The ID of the domain
762
- * @example 0Lleb1FOUnB60jSueJ/mkPId1vrdB68T8/u9tiInsi4=
763
- */
764
- id: string;
765
- /**
766
- * @description The name of the domain
767
- * @example example.com
768
- */
769
- name: string;
770
- /**
771
- * @description The ID of the team
772
- * @example jonVNF8M+EbJObaRAz2XBHnoJ6Add/tazP9lfOiPJ3E=
773
- */
774
- teamId: string;
775
- /** @description The status of the domain */
776
- status: string;
777
- /**
778
- * @description The region of the domain
779
- * @default us-east-1
780
- * @example us-east-1
781
- */
782
- region: string;
783
- /**
784
- * @description Whether click tracking is enabled
785
- * @default false
786
- * @example false
787
- */
788
- clickTracking: boolean;
789
- /**
790
- * @description Whether open tracking is enabled
791
- * @default false
792
- * @example false
793
- */
794
- openTracking: boolean;
795
- /** @description The public key of the domain */
796
- publicKey: string;
797
- /** @description The DKIM status of the domain */
798
- dkimStatus?: string | null;
799
- /** @description The SPF details of the domain */
800
- spfDetails?: string | null;
801
- /** @description The creation date of the domain */
802
- createdAt: string;
803
- /** @description The last update date of the domain */
804
- updatedAt: string;
805
- /**
806
- * @description Whether DMARC is added
807
- * @default false
808
- */
809
- dmarcAdded: boolean;
810
- /**
811
- * @description Whether the domain is verifying
812
- * @default false
813
- */
814
- isVerifying: boolean;
815
- /** @description The error message of the domain */
816
- errorMessage?: string | null;
817
- /** @description The subdomain of the domain */
818
- subdomain?: string | null;
819
- /** @description The verification error of the domain */
820
- verificationError?: string | null;
821
- /** @description The last checked time of the domain */
822
- lastCheckedTime?: string | null;
823
- /** @description The DNS records of the domain */
824
- dnsRecords: {
825
- /**
826
- * @description DNS record type
827
- * @example TXT
828
- * @enum {string}
829
- */
830
- type: "MX" | "TXT";
831
- /**
832
- * @description DNS record name
833
- * @example mail
834
- */
835
- name: string;
836
- /**
837
- * @description DNS record value
838
- * @example v=spf1 include:amazonses.com ~all
839
- */
840
- value: string;
841
- /**
842
- * @description DNS record TTL
843
- * @example Auto
844
- */
845
- ttl: string;
846
- /**
847
- * @description DNS record priority
848
- * @example 10
849
- */
850
- priority?: string | null;
851
- /** @description The status of the domain */
852
- status: string;
853
- /** @description Whether the record is recommended */
854
- recommended?: boolean;
855
- }[];
856
- }[];
1152
+ code: string;
1153
+ message: string;
1154
+ docs?: string;
1155
+ };
857
1156
  };
858
1157
  };
859
- };
860
- };
861
- createDomain: {
862
- parameters: {
863
- query?: never;
864
- header?: never;
865
- path?: never;
866
- cookie?: never;
867
- };
868
- requestBody: {
869
- content: {
870
- "application/json": {
871
- name: string;
872
- region: string;
1158
+ /** @description Unauthorized */
1159
+ 401: {
1160
+ headers: {
1161
+ [name: string]: unknown;
1162
+ };
1163
+ content: {
1164
+ "application/json": {
1165
+ code: string;
1166
+ message: string;
1167
+ docs?: string;
1168
+ };
873
1169
  };
874
1170
  };
875
- };
876
- responses: {
877
- /** @description Create a new domain */
878
- 200: {
1171
+ /** @description Forbidden */
1172
+ 403: {
879
1173
  headers: {
880
1174
  [name: string]: unknown;
881
1175
  };
882
1176
  content: {
883
1177
  "application/json": {
884
- /**
885
- * @description The ID of the domain
886
- * @example 0Lleb1FOUnB60jSueJ/mkPId1vrdB68T8/u9tiInsi4=
887
- */
888
- id: string;
889
- /**
1178
+ code: string;
1179
+ message: string;
1180
+ docs?: string;
1181
+ };
1182
+ };
1183
+ };
1184
+ /** @description Not Found */
1185
+ 404: {
1186
+ headers: {
1187
+ [name: string]: unknown;
1188
+ };
1189
+ content: {
1190
+ "application/json": {
1191
+ code: string;
1192
+ message: string;
1193
+ docs?: string;
1194
+ };
1195
+ };
1196
+ };
1197
+ /** @description Too Many Requests */
1198
+ 429: {
1199
+ headers: {
1200
+ [name: string]: unknown;
1201
+ };
1202
+ content: {
1203
+ "application/json": {
1204
+ code: string;
1205
+ message: string;
1206
+ docs?: string;
1207
+ };
1208
+ };
1209
+ };
1210
+ /** @description Internal Server Error */
1211
+ 500: {
1212
+ headers: {
1213
+ [name: string]: unknown;
1214
+ };
1215
+ content: {
1216
+ "application/json": {
1217
+ code: string;
1218
+ message: string;
1219
+ docs?: string;
1220
+ };
1221
+ };
1222
+ };
1223
+ };
1224
+ };
1225
+ getStats: {
1226
+ parameters: {
1227
+ query?: {
1228
+ startDate?: string;
1229
+ endDate?: string;
1230
+ };
1231
+ header?: never;
1232
+ path?: never;
1233
+ cookie?: never;
1234
+ };
1235
+ requestBody?: never;
1236
+ responses: {
1237
+ /** @description Email statistics */
1238
+ 200: {
1239
+ headers: {
1240
+ [name: string]: unknown;
1241
+ };
1242
+ content: {
1243
+ "application/json": Record<string, never>;
1244
+ };
1245
+ };
1246
+ /** @description Bad Request */
1247
+ 400: {
1248
+ headers: {
1249
+ [name: string]: unknown;
1250
+ };
1251
+ content: {
1252
+ "application/json": {
1253
+ code: string;
1254
+ message: string;
1255
+ docs?: string;
1256
+ };
1257
+ };
1258
+ };
1259
+ /** @description Unauthorized */
1260
+ 401: {
1261
+ headers: {
1262
+ [name: string]: unknown;
1263
+ };
1264
+ content: {
1265
+ "application/json": {
1266
+ code: string;
1267
+ message: string;
1268
+ docs?: string;
1269
+ };
1270
+ };
1271
+ };
1272
+ /** @description Internal Server Error */
1273
+ 500: {
1274
+ headers: {
1275
+ [name: string]: unknown;
1276
+ };
1277
+ content: {
1278
+ "application/json": {
1279
+ code: string;
1280
+ message: string;
1281
+ docs?: string;
1282
+ };
1283
+ };
1284
+ };
1285
+ };
1286
+ };
1287
+ getMetrics: {
1288
+ parameters: {
1289
+ query?: {
1290
+ period?: "day" | "week" | "month";
1291
+ };
1292
+ header?: never;
1293
+ path?: never;
1294
+ cookie?: never;
1295
+ };
1296
+ requestBody?: never;
1297
+ responses: {
1298
+ /** @description Performance metrics */
1299
+ 200: {
1300
+ headers: {
1301
+ [name: string]: unknown;
1302
+ };
1303
+ content: {
1304
+ "application/json": Record<string, never>;
1305
+ };
1306
+ };
1307
+ /** @description Bad Request */
1308
+ 400: {
1309
+ headers: {
1310
+ [name: string]: unknown;
1311
+ };
1312
+ content: {
1313
+ "application/json": {
1314
+ code: string;
1315
+ message: string;
1316
+ docs?: string;
1317
+ };
1318
+ };
1319
+ };
1320
+ /** @description Unauthorized */
1321
+ 401: {
1322
+ headers: {
1323
+ [name: string]: unknown;
1324
+ };
1325
+ content: {
1326
+ "application/json": {
1327
+ code: string;
1328
+ message: string;
1329
+ docs?: string;
1330
+ };
1331
+ };
1332
+ };
1333
+ /** @description Internal Server Error */
1334
+ 500: {
1335
+ headers: {
1336
+ [name: string]: unknown;
1337
+ };
1338
+ content: {
1339
+ "application/json": {
1340
+ code: string;
1341
+ message: string;
1342
+ docs?: string;
1343
+ };
1344
+ };
1345
+ };
1346
+ };
1347
+ };
1348
+ getDomains: {
1349
+ parameters: {
1350
+ query?: never;
1351
+ header?: never;
1352
+ path?: never;
1353
+ cookie?: never;
1354
+ };
1355
+ requestBody?: never;
1356
+ responses: {
1357
+ /** @description Retrieve domains accessible by the API key */
1358
+ 200: {
1359
+ headers: {
1360
+ [name: string]: unknown;
1361
+ };
1362
+ content: {
1363
+ "application/json": {
1364
+ /**
1365
+ * @description The ID of the domain
1366
+ * @example 0Lleb1FOUnB60jSueJ/mkPId1vrdB68T8/u9tiInsi4=
1367
+ */
1368
+ id: string;
1369
+ /**
890
1370
  * @description The name of the domain
891
1371
  * @example example.com
892
1372
  */
@@ -977,63 +1457,28 @@ interface operations {
977
1457
  /** @description Whether the record is recommended */
978
1458
  recommended?: boolean;
979
1459
  }[];
980
- };
1460
+ }[];
981
1461
  };
982
1462
  };
983
1463
  };
984
1464
  };
985
- verifyDomain: {
1465
+ createDomain: {
986
1466
  parameters: {
987
1467
  query?: never;
988
1468
  header?: never;
989
- path: {
990
- id: string;
991
- };
1469
+ path?: never;
992
1470
  cookie?: never;
993
1471
  };
994
- requestBody?: never;
995
- responses: {
996
- /** @description Verify domain */
997
- 200: {
998
- headers: {
999
- [name: string]: unknown;
1000
- };
1001
- content: {
1002
- "application/json": Record<string, never>;
1003
- };
1004
- };
1005
- /** @description Forbidden - API key doesn't have access to this domain */
1006
- 403: {
1007
- headers: {
1008
- [name: string]: unknown;
1009
- };
1010
- content: {
1011
- "application/json": Record<string, never>;
1012
- };
1013
- };
1014
- /** @description Domain not found */
1015
- 404: {
1016
- headers: {
1017
- [name: string]: unknown;
1018
- };
1019
- content: {
1020
- "application/json": Record<string, never>;
1472
+ requestBody: {
1473
+ content: {
1474
+ "application/json": {
1475
+ name: string;
1476
+ region: string;
1021
1477
  };
1022
1478
  };
1023
1479
  };
1024
- };
1025
- getDomain: {
1026
- parameters: {
1027
- query?: never;
1028
- header?: never;
1029
- path: {
1030
- id: string;
1031
- };
1032
- cookie?: never;
1033
- };
1034
- requestBody?: never;
1035
1480
  responses: {
1036
- /** @description Retrieve the domain */
1481
+ /** @description Create a new domain */
1037
1482
  200: {
1038
1483
  headers: {
1039
1484
  [name: string]: unknown;
@@ -1141,9 +1586,11 @@ interface operations {
1141
1586
  };
1142
1587
  };
1143
1588
  };
1144
- deleteDomain: {
1589
+ getDomainAnalytics: {
1145
1590
  parameters: {
1146
- query?: never;
1591
+ query?: {
1592
+ period?: "day" | "week" | "month";
1593
+ };
1147
1594
  header?: never;
1148
1595
  path: {
1149
1596
  id: string;
@@ -1152,99 +1599,170 @@ interface operations {
1152
1599
  };
1153
1600
  requestBody?: never;
1154
1601
  responses: {
1155
- /** @description Domain deleted successfully */
1602
+ /** @description Domain analytics */
1156
1603
  200: {
1157
1604
  headers: {
1158
1605
  [name: string]: unknown;
1159
1606
  };
1160
1607
  content: {
1161
- "application/json": Record<string, never>;
1608
+ "application/json": {
1609
+ /** @description The date of the analytics */
1610
+ date: string;
1611
+ /** @description Number of emails sent */
1612
+ sent: number;
1613
+ /** @description Number of emails delivered */
1614
+ delivered: number;
1615
+ /** @description Number of emails opened */
1616
+ opened: number;
1617
+ /** @description Number of emails clicked */
1618
+ clicked: number;
1619
+ /** @description Number of emails bounced */
1620
+ bounced: number;
1621
+ /** @description Number of emails complained */
1622
+ complained: number;
1623
+ }[];
1162
1624
  };
1163
1625
  };
1164
- /** @description Forbidden - API key doesn't have access */
1165
- 403: {
1626
+ /** @description Bad Request */
1627
+ 400: {
1166
1628
  headers: {
1167
1629
  [name: string]: unknown;
1168
1630
  };
1169
1631
  content: {
1170
- "application/json": Record<string, never>;
1632
+ "application/json": {
1633
+ code: string;
1634
+ message: string;
1635
+ docs?: string;
1636
+ };
1171
1637
  };
1172
1638
  };
1173
- /** @description Domain not found */
1174
- 404: {
1639
+ /** @description Unauthorized */
1640
+ 401: {
1175
1641
  headers: {
1176
1642
  [name: string]: unknown;
1177
1643
  };
1178
1644
  content: {
1179
- "application/json": Record<string, never>;
1645
+ "application/json": {
1646
+ code: string;
1647
+ message: string;
1648
+ docs?: string;
1649
+ };
1180
1650
  };
1181
1651
  };
1182
- };
1183
- };
1184
- getEmail: {
1185
- parameters: {
1186
- query?: never;
1187
- header?: never;
1188
- path: {
1189
- emailId: string;
1190
- };
1191
- cookie?: never;
1192
- };
1193
- requestBody?: never;
1194
- responses: {
1195
- /** @description Retrieve the email */
1196
- 200: {
1652
+ /** @description Internal Server Error */
1653
+ 500: {
1197
1654
  headers: {
1198
1655
  [name: string]: unknown;
1199
1656
  };
1200
1657
  content: {
1201
- "application/json": Record<string, never>;
1658
+ "application/json": {
1659
+ code: string;
1660
+ message: string;
1661
+ docs?: string;
1662
+ };
1202
1663
  };
1203
1664
  };
1204
1665
  };
1205
1666
  };
1206
- updateEmail: {
1667
+ getDomainStats: {
1207
1668
  parameters: {
1208
- query?: never;
1669
+ query?: {
1670
+ startDate?: string;
1671
+ endDate?: string;
1672
+ };
1209
1673
  header?: never;
1210
1674
  path: {
1211
- emailId: string;
1675
+ id: string;
1212
1676
  };
1213
1677
  cookie?: never;
1214
1678
  };
1215
- requestBody: {
1216
- content: {
1217
- "application/json": Record<string, never>;
1218
- };
1219
- };
1679
+ requestBody?: never;
1220
1680
  responses: {
1221
- /** @description Retrieve the user */
1681
+ /** @description Domain statistics */
1222
1682
  200: {
1223
1683
  headers: {
1224
1684
  [name: string]: unknown;
1225
1685
  };
1226
1686
  content: {
1227
- "application/json": Record<string, never>;
1687
+ "application/json": {
1688
+ /** @description Total emails sent */
1689
+ totalSent: number;
1690
+ /** @description Total emails delivered */
1691
+ totalDelivered: number;
1692
+ /** @description Total emails opened */
1693
+ totalOpened: number;
1694
+ /** @description Total emails clicked */
1695
+ totalClicked: number;
1696
+ /** @description Total emails bounced */
1697
+ totalBounced: number;
1698
+ /** @description Total emails complained */
1699
+ totalComplained: number;
1700
+ /** @description Delivery rate percentage */
1701
+ deliveryRate: number;
1702
+ /** @description Open rate percentage */
1703
+ openRate: number;
1704
+ /** @description Click rate percentage */
1705
+ clickRate: number;
1706
+ /** @description Bounce rate percentage */
1707
+ bounceRate: number;
1708
+ /** @description Complaint rate percentage */
1709
+ complaintRate: number;
1710
+ };
1228
1711
  };
1229
1712
  };
1230
- };
1231
- };
1232
- listEmails: {
1233
- parameters: {
1234
- query?: {
1235
- page?: string;
1236
- limit?: string;
1237
- startDate?: string;
1238
- endDate?: string;
1239
- domainId?: string | string[];
1713
+ /** @description Bad Request */
1714
+ 400: {
1715
+ headers: {
1716
+ [name: string]: unknown;
1717
+ };
1718
+ content: {
1719
+ "application/json": {
1720
+ code: string;
1721
+ message: string;
1722
+ docs?: string;
1723
+ };
1724
+ };
1725
+ };
1726
+ /** @description Unauthorized */
1727
+ 401: {
1728
+ headers: {
1729
+ [name: string]: unknown;
1730
+ };
1731
+ content: {
1732
+ "application/json": {
1733
+ code: string;
1734
+ message: string;
1735
+ docs?: string;
1736
+ };
1737
+ };
1738
+ };
1739
+ /** @description Internal Server Error */
1740
+ 500: {
1741
+ headers: {
1742
+ [name: string]: unknown;
1743
+ };
1744
+ content: {
1745
+ "application/json": {
1746
+ code: string;
1747
+ message: string;
1748
+ docs?: string;
1749
+ };
1750
+ };
1240
1751
  };
1752
+ };
1753
+ };
1754
+ verifyDomain: {
1755
+ parameters: {
1756
+ query?: never;
1241
1757
  header?: never;
1242
- path?: never;
1758
+ path: {
1759
+ id: string;
1760
+ };
1243
1761
  cookie?: never;
1244
1762
  };
1245
1763
  requestBody?: never;
1246
1764
  responses: {
1247
- /** @description Retrieve a list of emails */
1765
+ /** @description Verify domain */
1248
1766
  200: {
1249
1767
  headers: {
1250
1768
  [name: string]: unknown;
@@ -1253,54 +1771,157 @@ interface operations {
1253
1771
  "application/json": Record<string, never>;
1254
1772
  };
1255
1773
  };
1774
+ /** @description Forbidden - API key doesn't have access to this domain */
1775
+ 403: {
1776
+ headers: {
1777
+ [name: string]: unknown;
1778
+ };
1779
+ content: {
1780
+ "application/json": Record<string, never>;
1781
+ };
1782
+ };
1783
+ /** @description Domain not found */
1784
+ 404: {
1785
+ headers: {
1786
+ [name: string]: unknown;
1787
+ };
1788
+ content: {
1789
+ "application/json": Record<string, never>;
1790
+ };
1791
+ };
1256
1792
  };
1257
1793
  };
1258
- sendEmail: {
1794
+ getDomain: {
1259
1795
  parameters: {
1260
1796
  query?: never;
1261
- header?: {
1262
- /** @description Pass the optional Idempotency-Key header to make the request safe to retry. The key can be up to 256 characters. The server stores the canonical request body and behaves as follows:
1263
- *
1264
- * - Same key + same request body → returns the original emailId with 200 OK without re-sending.
1265
- * - Same key + different request body → returns 409 Conflict with code: NOT_UNIQUE so you can detect the mismatch.
1266
- * - Same key while another request is still being processed → returns 409 Conflict; retry after a short delay or once the first request completes.
1267
- *
1268
- * Entries expire after 24 hours. Use a unique key per logical send (for example, an order or signup ID). */
1269
- "Idempotency-Key"?: string;
1797
+ header?: never;
1798
+ path: {
1799
+ id: string;
1270
1800
  };
1271
- path?: never;
1272
1801
  cookie?: never;
1273
1802
  };
1274
- requestBody: {
1275
- content: {
1276
- "application/json": {
1277
- to: string | string[];
1278
- from: string;
1279
- /** @description Optional when templateId is provided */
1280
- subject?: string;
1281
- /** @description ID of a template from the dashboard */
1282
- templateId?: string;
1283
- variables?: {
1284
- [key: string]: string;
1285
- };
1286
- replyTo?: string | string[];
1287
- cc?: string | string[];
1288
- bcc?: string | string[];
1289
- text?: string | null;
1290
- html?: string | null;
1291
- /** @description Custom headers to included with the emails */
1292
- headers?: {
1293
- [key: string]: string;
1803
+ requestBody?: never;
1804
+ responses: {
1805
+ /** @description Retrieve the domain */
1806
+ 200: {
1807
+ headers: {
1808
+ [name: string]: unknown;
1809
+ };
1810
+ content: {
1811
+ "application/json": {
1812
+ /**
1813
+ * @description The ID of the domain
1814
+ * @example 0Lleb1FOUnB60jSueJ/mkPId1vrdB68T8/u9tiInsi4=
1815
+ */
1816
+ id: string;
1817
+ /**
1818
+ * @description The name of the domain
1819
+ * @example example.com
1820
+ */
1821
+ name: string;
1822
+ /**
1823
+ * @description The ID of the team
1824
+ * @example jonVNF8M+EbJObaRAz2XBHnoJ6Add/tazP9lfOiPJ3E=
1825
+ */
1826
+ teamId: string;
1827
+ /** @description The status of the domain */
1828
+ status: string;
1829
+ /**
1830
+ * @description The region of the domain
1831
+ * @default us-east-1
1832
+ * @example us-east-1
1833
+ */
1834
+ region: string;
1835
+ /**
1836
+ * @description Whether click tracking is enabled
1837
+ * @default false
1838
+ * @example false
1839
+ */
1840
+ clickTracking: boolean;
1841
+ /**
1842
+ * @description Whether open tracking is enabled
1843
+ * @default false
1844
+ * @example false
1845
+ */
1846
+ openTracking: boolean;
1847
+ /** @description The public key of the domain */
1848
+ publicKey: string;
1849
+ /** @description The DKIM status of the domain */
1850
+ dkimStatus?: string | null;
1851
+ /** @description The SPF details of the domain */
1852
+ spfDetails?: string | null;
1853
+ /** @description The creation date of the domain */
1854
+ createdAt: string;
1855
+ /** @description The last update date of the domain */
1856
+ updatedAt: string;
1857
+ /**
1858
+ * @description Whether DMARC is added
1859
+ * @default false
1860
+ */
1861
+ dmarcAdded: boolean;
1862
+ /**
1863
+ * @description Whether the domain is verifying
1864
+ * @default false
1865
+ */
1866
+ isVerifying: boolean;
1867
+ /** @description The error message of the domain */
1868
+ errorMessage?: string | null;
1869
+ /** @description The subdomain of the domain */
1870
+ subdomain?: string | null;
1871
+ /** @description The verification error of the domain */
1872
+ verificationError?: string | null;
1873
+ /** @description The last checked time of the domain */
1874
+ lastCheckedTime?: string | null;
1875
+ /** @description The DNS records of the domain */
1876
+ dnsRecords: {
1877
+ /**
1878
+ * @description DNS record type
1879
+ * @example TXT
1880
+ * @enum {string}
1881
+ */
1882
+ type: "MX" | "TXT";
1883
+ /**
1884
+ * @description DNS record name
1885
+ * @example mail
1886
+ */
1887
+ name: string;
1888
+ /**
1889
+ * @description DNS record value
1890
+ * @example v=spf1 include:amazonses.com ~all
1891
+ */
1892
+ value: string;
1893
+ /**
1894
+ * @description DNS record TTL
1895
+ * @example Auto
1896
+ */
1897
+ ttl: string;
1898
+ /**
1899
+ * @description DNS record priority
1900
+ * @example 10
1901
+ */
1902
+ priority?: string | null;
1903
+ /** @description The status of the domain */
1904
+ status: string;
1905
+ /** @description Whether the record is recommended */
1906
+ recommended?: boolean;
1907
+ }[];
1294
1908
  };
1295
- attachments?: Record<string, never>[];
1296
- /** Format: date-time */
1297
- scheduledAt?: string;
1298
- inReplyToId?: string | null;
1299
1909
  };
1300
1910
  };
1301
1911
  };
1912
+ };
1913
+ deleteDomain: {
1914
+ parameters: {
1915
+ query?: never;
1916
+ header?: never;
1917
+ path: {
1918
+ id: string;
1919
+ };
1920
+ cookie?: never;
1921
+ };
1922
+ requestBody?: never;
1302
1923
  responses: {
1303
- /** @description Retrieve the user */
1924
+ /** @description Domain deleted successfully */
1304
1925
  200: {
1305
1926
  headers: {
1306
1927
  [name: string]: unknown;
@@ -1309,6 +1930,24 @@ interface operations {
1309
1930
  "application/json": Record<string, never>;
1310
1931
  };
1311
1932
  };
1933
+ /** @description Forbidden - API key doesn't have access */
1934
+ 403: {
1935
+ headers: {
1936
+ [name: string]: unknown;
1937
+ };
1938
+ content: {
1939
+ "application/json": Record<string, never>;
1940
+ };
1941
+ };
1942
+ /** @description Domain not found */
1943
+ 404: {
1944
+ headers: {
1945
+ [name: string]: unknown;
1946
+ };
1947
+ content: {
1948
+ "application/json": Record<string, never>;
1949
+ };
1950
+ };
1312
1951
  };
1313
1952
  };
1314
1953
  getBounces: {
@@ -1380,25 +2019,107 @@ interface operations {
1380
2019
  };
1381
2020
  };
1382
2021
  };
1383
- sendBatchEmails: {
2022
+ listEmails: {
1384
2023
  parameters: {
1385
- query?: never;
1386
- header?: {
1387
- /** @description Pass the optional Idempotency-Key header to make the request safe to retry. The key can be up to 256 characters. The server stores the canonical request body and behaves as follows:
1388
- *
1389
- * - Same key + same request body → returns the original emailId with 200 OK without re-sending.
1390
- * - Same key + different request body → returns 409 Conflict with code: NOT_UNIQUE so you can detect the mismatch.
1391
- * - Same key while another request is still being processed → returns 409 Conflict; retry after a short delay or once the first request completes.
1392
- *
1393
- * Entries expire after 24 hours. Use a unique key per logical send (for example, an order or signup ID). */
1394
- "Idempotency-Key"?: string;
2024
+ query?: {
2025
+ page?: string;
2026
+ limit?: string;
2027
+ startDate?: string;
2028
+ endDate?: string;
2029
+ domainId?: string | string[];
1395
2030
  };
2031
+ header?: never;
1396
2032
  path?: never;
1397
2033
  cookie?: never;
1398
2034
  };
1399
- requestBody: {
1400
- content: {
1401
- "application/json": {
2035
+ requestBody?: never;
2036
+ responses: {
2037
+ /** @description Retrieve a list of emails */
2038
+ 200: {
2039
+ headers: {
2040
+ [name: string]: unknown;
2041
+ };
2042
+ content: {
2043
+ "application/json": Record<string, never>;
2044
+ };
2045
+ };
2046
+ };
2047
+ };
2048
+ sendEmail: {
2049
+ parameters: {
2050
+ query?: never;
2051
+ header?: {
2052
+ /** @description Pass the optional Idempotency-Key header to make the request safe to retry. The key can be up to 256 characters. The server stores the canonical request body and behaves as follows:
2053
+ *
2054
+ * - Same key + same request body → returns the original emailId with 200 OK without re-sending.
2055
+ * - Same key + different request body → returns 409 Conflict with code: NOT_UNIQUE so you can detect the mismatch.
2056
+ * - Same key while another request is still being processed → returns 409 Conflict; retry after a short delay or once the first request completes.
2057
+ *
2058
+ * Entries expire after 24 hours. Use a unique key per logical send (for example, an order or signup ID). */
2059
+ "Idempotency-Key"?: string;
2060
+ };
2061
+ path?: never;
2062
+ cookie?: never;
2063
+ };
2064
+ requestBody: {
2065
+ content: {
2066
+ "application/json": {
2067
+ to: string | string[];
2068
+ from: string;
2069
+ /** @description Optional when templateId is provided */
2070
+ subject?: string;
2071
+ /** @description ID of a template from the dashboard */
2072
+ templateId?: string;
2073
+ variables?: {
2074
+ [key: string]: string;
2075
+ };
2076
+ replyTo?: string | string[];
2077
+ cc?: string | string[];
2078
+ bcc?: string | string[];
2079
+ text?: string | null;
2080
+ html?: string | null;
2081
+ /** @description Custom headers to included with the emails */
2082
+ headers?: {
2083
+ [key: string]: string;
2084
+ };
2085
+ attachments?: Record<string, never>[];
2086
+ /** Format: date-time */
2087
+ scheduledAt?: string;
2088
+ inReplyToId?: string | null;
2089
+ };
2090
+ };
2091
+ };
2092
+ responses: {
2093
+ /** @description Retrieve the user */
2094
+ 200: {
2095
+ headers: {
2096
+ [name: string]: unknown;
2097
+ };
2098
+ content: {
2099
+ "application/json": Record<string, never>;
2100
+ };
2101
+ };
2102
+ };
2103
+ };
2104
+ sendBatchEmails: {
2105
+ parameters: {
2106
+ query?: never;
2107
+ header?: {
2108
+ /** @description Pass the optional Idempotency-Key header to make the request safe to retry. The key can be up to 256 characters. The server stores the canonical request body and behaves as follows:
2109
+ *
2110
+ * - Same key + same request body → returns the original emailId with 200 OK without re-sending.
2111
+ * - Same key + different request body → returns 409 Conflict with code: NOT_UNIQUE so you can detect the mismatch.
2112
+ * - Same key while another request is still being processed → returns 409 Conflict; retry after a short delay or once the first request completes.
2113
+ *
2114
+ * Entries expire after 24 hours. Use a unique key per logical send (for example, an order or signup ID). */
2115
+ "Idempotency-Key"?: string;
2116
+ };
2117
+ path?: never;
2118
+ cookie?: never;
2119
+ };
2120
+ requestBody: {
2121
+ content: {
2122
+ "application/json": {
1402
2123
  to: string | string[];
1403
2124
  from: string;
1404
2125
  /** @description Optional when templateId is provided */
@@ -1436,6 +2157,159 @@ interface operations {
1436
2157
  };
1437
2158
  };
1438
2159
  };
2160
+ getEmailEvents: {
2161
+ parameters: {
2162
+ query?: {
2163
+ page?: number;
2164
+ limit?: number;
2165
+ status?: "SCHEDULED" | "QUEUED" | "SENT" | "DELIVERY_DELAYED" | "BOUNCED" | "REJECTED" | "RENDERING_FAILURE" | "DELIVERED" | "OPENED" | "CLICKED" | "COMPLAINED" | "FAILED" | "CANCELLED" | "SUPPRESSED";
2166
+ startDate?: string;
2167
+ };
2168
+ header?: never;
2169
+ path: {
2170
+ emailId: string;
2171
+ };
2172
+ cookie?: never;
2173
+ };
2174
+ requestBody?: never;
2175
+ responses: {
2176
+ /** @description List of events for the email */
2177
+ 200: {
2178
+ headers: {
2179
+ [name: string]: unknown;
2180
+ };
2181
+ content: {
2182
+ "application/json": Record<string, never>;
2183
+ };
2184
+ };
2185
+ /** @description Bad Request */
2186
+ 400: {
2187
+ headers: {
2188
+ [name: string]: unknown;
2189
+ };
2190
+ content: {
2191
+ "application/json": {
2192
+ code: string;
2193
+ message: string;
2194
+ docs?: string;
2195
+ };
2196
+ };
2197
+ };
2198
+ /** @description Unauthorized */
2199
+ 401: {
2200
+ headers: {
2201
+ [name: string]: unknown;
2202
+ };
2203
+ content: {
2204
+ "application/json": {
2205
+ code: string;
2206
+ message: string;
2207
+ docs?: string;
2208
+ };
2209
+ };
2210
+ };
2211
+ /** @description Forbidden */
2212
+ 403: {
2213
+ headers: {
2214
+ [name: string]: unknown;
2215
+ };
2216
+ content: {
2217
+ "application/json": {
2218
+ code: string;
2219
+ message: string;
2220
+ docs?: string;
2221
+ };
2222
+ };
2223
+ };
2224
+ /** @description Not Found */
2225
+ 404: {
2226
+ headers: {
2227
+ [name: string]: unknown;
2228
+ };
2229
+ content: {
2230
+ "application/json": {
2231
+ code: string;
2232
+ message: string;
2233
+ docs?: string;
2234
+ };
2235
+ };
2236
+ };
2237
+ /** @description Too Many Requests */
2238
+ 429: {
2239
+ headers: {
2240
+ [name: string]: unknown;
2241
+ };
2242
+ content: {
2243
+ "application/json": {
2244
+ code: string;
2245
+ message: string;
2246
+ docs?: string;
2247
+ };
2248
+ };
2249
+ };
2250
+ /** @description Internal Server Error */
2251
+ 500: {
2252
+ headers: {
2253
+ [name: string]: unknown;
2254
+ };
2255
+ content: {
2256
+ "application/json": {
2257
+ code: string;
2258
+ message: string;
2259
+ docs?: string;
2260
+ };
2261
+ };
2262
+ };
2263
+ };
2264
+ };
2265
+ getEmail: {
2266
+ parameters: {
2267
+ query?: never;
2268
+ header?: never;
2269
+ path: {
2270
+ emailId: string;
2271
+ };
2272
+ cookie?: never;
2273
+ };
2274
+ requestBody?: never;
2275
+ responses: {
2276
+ /** @description Retrieve the email */
2277
+ 200: {
2278
+ headers: {
2279
+ [name: string]: unknown;
2280
+ };
2281
+ content: {
2282
+ "application/json": Record<string, never>;
2283
+ };
2284
+ };
2285
+ };
2286
+ };
2287
+ updateEmail: {
2288
+ parameters: {
2289
+ query?: never;
2290
+ header?: never;
2291
+ path: {
2292
+ emailId: string;
2293
+ };
2294
+ cookie?: never;
2295
+ };
2296
+ requestBody: {
2297
+ content: {
2298
+ "application/json": Record<string, never>;
2299
+ };
2300
+ };
2301
+ responses: {
2302
+ /** @description Retrieve the user */
2303
+ 200: {
2304
+ headers: {
2305
+ [name: string]: unknown;
2306
+ };
2307
+ content: {
2308
+ "application/json": Record<string, never>;
2309
+ };
2310
+ };
2311
+ };
2312
+ };
1439
2313
  cancelScheduledEmail: {
1440
2314
  parameters: {
1441
2315
  query?: never;
@@ -1480,7 +2354,7 @@ interface operations {
1480
2354
  [name: string]: unknown;
1481
2355
  };
1482
2356
  content: {
1483
- "application/json": Record<string, never>[];
2357
+ "application/json": Record<string, never>;
1484
2358
  };
1485
2359
  };
1486
2360
  };
@@ -1497,6 +2371,7 @@ interface operations {
1497
2371
  requestBody: {
1498
2372
  content: {
1499
2373
  "application/json": {
2374
+ /** Format: email */
1500
2375
  email: string;
1501
2376
  firstName?: string;
1502
2377
  lastName?: string;
@@ -1995,114 +2870,949 @@ interface operations {
1995
2870
  };
1996
2871
  };
1997
2872
  };
1998
- };
1999
- responses: {
2000
- /** @description Update contact book */
2001
- 200: {
2873
+ };
2874
+ responses: {
2875
+ /** @description Update contact book */
2876
+ 200: {
2877
+ headers: {
2878
+ [name: string]: unknown;
2879
+ };
2880
+ content: {
2881
+ "application/json": {
2882
+ id: string;
2883
+ name: string;
2884
+ };
2885
+ };
2886
+ };
2887
+ };
2888
+ };
2889
+ getTemplates: {
2890
+ parameters: {
2891
+ query?: never;
2892
+ header?: never;
2893
+ path?: never;
2894
+ cookie?: never;
2895
+ };
2896
+ requestBody?: never;
2897
+ responses: {
2898
+ /** @description Get templates */
2899
+ 200: {
2900
+ headers: {
2901
+ [name: string]: unknown;
2902
+ };
2903
+ content: {
2904
+ "application/json": {
2905
+ data: {
2906
+ id: string;
2907
+ name: string;
2908
+ subject: string;
2909
+ html: string | null;
2910
+ content: string | null;
2911
+ teamId: string;
2912
+ createdAt: string;
2913
+ updatedAt: string;
2914
+ }[];
2915
+ };
2916
+ };
2917
+ };
2918
+ };
2919
+ };
2920
+ createTemplate: {
2921
+ parameters: {
2922
+ query?: never;
2923
+ header?: never;
2924
+ path?: never;
2925
+ cookie?: never;
2926
+ };
2927
+ requestBody?: {
2928
+ content: {
2929
+ "application/json": {
2930
+ name: string;
2931
+ subject: string;
2932
+ html?: string;
2933
+ content?: string;
2934
+ };
2935
+ };
2936
+ };
2937
+ responses: {
2938
+ /** @description Create template */
2939
+ 200: {
2940
+ headers: {
2941
+ [name: string]: unknown;
2942
+ };
2943
+ content: {
2944
+ "application/json": {
2945
+ id: string;
2946
+ };
2947
+ };
2948
+ };
2949
+ };
2950
+ };
2951
+ getTemplate: {
2952
+ parameters: {
2953
+ query?: never;
2954
+ header?: never;
2955
+ path: {
2956
+ id: string;
2957
+ };
2958
+ cookie?: never;
2959
+ };
2960
+ requestBody?: never;
2961
+ responses: {
2962
+ /** @description Get template */
2963
+ 200: {
2964
+ headers: {
2965
+ [name: string]: unknown;
2966
+ };
2967
+ content: {
2968
+ "application/json": {
2969
+ id: string;
2970
+ name: string;
2971
+ subject: string;
2972
+ html: string | null;
2973
+ content: string | null;
2974
+ teamId: string;
2975
+ createdAt: string;
2976
+ updatedAt: string;
2977
+ };
2978
+ };
2979
+ };
2980
+ };
2981
+ };
2982
+ deleteTemplate: {
2983
+ parameters: {
2984
+ query?: never;
2985
+ header?: never;
2986
+ path: {
2987
+ id: string;
2988
+ };
2989
+ cookie?: never;
2990
+ };
2991
+ requestBody?: never;
2992
+ responses: {
2993
+ /** @description Delete template */
2994
+ 200: {
2995
+ headers: {
2996
+ [name: string]: unknown;
2997
+ };
2998
+ content: {
2999
+ "application/json": {
3000
+ success: boolean;
3001
+ };
3002
+ };
3003
+ };
3004
+ };
3005
+ };
3006
+ updateTemplate: {
3007
+ parameters: {
3008
+ query?: never;
3009
+ header?: never;
3010
+ path: {
3011
+ id: string;
3012
+ };
3013
+ cookie?: never;
3014
+ };
3015
+ requestBody?: {
3016
+ content: {
3017
+ "application/json": {
3018
+ name?: string;
3019
+ subject?: string;
3020
+ html?: string;
3021
+ content?: string;
3022
+ };
3023
+ };
3024
+ };
3025
+ responses: {
3026
+ /** @description Update template */
3027
+ 200: {
3028
+ headers: {
3029
+ [name: string]: unknown;
3030
+ };
3031
+ content: {
3032
+ "application/json": {
3033
+ success: boolean;
3034
+ };
3035
+ };
3036
+ };
3037
+ };
3038
+ };
3039
+ getSuppressions: {
3040
+ parameters: {
3041
+ query?: {
3042
+ page?: number;
3043
+ limit?: number;
3044
+ search?: string;
3045
+ reason?: "HARD_BOUNCE" | "COMPLAINT" | "MANUAL" | "UNSUBSCRIBE" | null;
3046
+ };
3047
+ header?: never;
3048
+ path?: never;
3049
+ cookie?: never;
3050
+ };
3051
+ requestBody?: never;
3052
+ responses: {
3053
+ /** @description List suppressions */
3054
+ 200: {
3055
+ headers: {
3056
+ [name: string]: unknown;
3057
+ };
3058
+ content: {
3059
+ "application/json": Record<string, never>;
3060
+ };
3061
+ };
3062
+ };
3063
+ };
3064
+ addSuppression: {
3065
+ parameters: {
3066
+ query?: never;
3067
+ header?: never;
3068
+ path?: never;
3069
+ cookie?: never;
3070
+ };
3071
+ requestBody?: {
3072
+ content: {
3073
+ "application/json": {
3074
+ /** Format: email */
3075
+ email: string;
3076
+ /** @enum {string} */
3077
+ reason: "HARD_BOUNCE" | "COMPLAINT" | "MANUAL" | "UNSUBSCRIBE";
3078
+ source?: string;
3079
+ };
3080
+ };
3081
+ };
3082
+ responses: {
3083
+ /** @description Create suppression */
3084
+ 200: {
3085
+ headers: {
3086
+ [name: string]: unknown;
3087
+ };
3088
+ content: {
3089
+ "application/json": {
3090
+ id: string;
3091
+ email: string;
3092
+ reason: string;
3093
+ source?: string | null;
3094
+ createdAt: string;
3095
+ };
3096
+ };
3097
+ };
3098
+ };
3099
+ };
3100
+ deleteSuppression: {
3101
+ parameters: {
3102
+ query?: never;
3103
+ header?: never;
3104
+ path: {
3105
+ email: string;
3106
+ };
3107
+ cookie?: never;
3108
+ };
3109
+ requestBody?: never;
3110
+ responses: {
3111
+ /** @description Delete suppression */
3112
+ 200: {
3113
+ headers: {
3114
+ [name: string]: unknown;
3115
+ };
3116
+ content: {
3117
+ "application/json": Record<string, never>;
3118
+ };
3119
+ };
3120
+ /** @description Suppression not found */
3121
+ 404: {
3122
+ headers: {
3123
+ [name: string]: unknown;
3124
+ };
3125
+ content: {
3126
+ "application/json": Record<string, never>;
3127
+ };
3128
+ };
3129
+ };
3130
+ };
3131
+ listWebhooks: {
3132
+ parameters: {
3133
+ query?: never;
3134
+ header?: never;
3135
+ path?: never;
3136
+ cookie?: never;
3137
+ };
3138
+ requestBody?: never;
3139
+ responses: {
3140
+ /** @description List Webhooks */
3141
+ 200: {
3142
+ headers: {
3143
+ [name: string]: unknown;
3144
+ };
3145
+ content: {
3146
+ "application/json": {
3147
+ id: string;
3148
+ url: string;
3149
+ description: string | null;
3150
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3151
+ status: string;
3152
+ secret: string;
3153
+ apiVersion: string | null;
3154
+ consecutiveFailures: number;
3155
+ lastSuccessAt: string | null;
3156
+ lastFailureAt: string | null;
3157
+ createdAt: string;
3158
+ updatedAt: string;
3159
+ teamId: string;
3160
+ createdByUserId: string | null;
3161
+ }[];
3162
+ };
3163
+ };
3164
+ /** @description Bad Request */
3165
+ 400: {
3166
+ headers: {
3167
+ [name: string]: unknown;
3168
+ };
3169
+ content: {
3170
+ "application/json": {
3171
+ code: string;
3172
+ message: string;
3173
+ docs?: string;
3174
+ };
3175
+ };
3176
+ };
3177
+ /** @description Unauthorized */
3178
+ 401: {
3179
+ headers: {
3180
+ [name: string]: unknown;
3181
+ };
3182
+ content: {
3183
+ "application/json": {
3184
+ code: string;
3185
+ message: string;
3186
+ docs?: string;
3187
+ };
3188
+ };
3189
+ };
3190
+ /** @description Forbidden */
3191
+ 403: {
3192
+ headers: {
3193
+ [name: string]: unknown;
3194
+ };
3195
+ content: {
3196
+ "application/json": {
3197
+ code: string;
3198
+ message: string;
3199
+ docs?: string;
3200
+ };
3201
+ };
3202
+ };
3203
+ /** @description Not Found */
3204
+ 404: {
3205
+ headers: {
3206
+ [name: string]: unknown;
3207
+ };
3208
+ content: {
3209
+ "application/json": {
3210
+ code: string;
3211
+ message: string;
3212
+ docs?: string;
3213
+ };
3214
+ };
3215
+ };
3216
+ /** @description Internal Server Error */
3217
+ 500: {
3218
+ headers: {
3219
+ [name: string]: unknown;
3220
+ };
3221
+ content: {
3222
+ "application/json": {
3223
+ code: string;
3224
+ message: string;
3225
+ docs?: string;
3226
+ };
3227
+ };
3228
+ };
3229
+ };
3230
+ };
3231
+ createWebhook: {
3232
+ parameters: {
3233
+ query?: never;
3234
+ header?: never;
3235
+ path?: never;
3236
+ cookie?: never;
3237
+ };
3238
+ requestBody?: {
3239
+ content: {
3240
+ "application/json": {
3241
+ /** Format: uri */
3242
+ url: string;
3243
+ description?: string;
3244
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3245
+ secret?: string;
3246
+ };
3247
+ };
3248
+ };
3249
+ responses: {
3250
+ /** @description Create Webhook */
3251
+ 200: {
3252
+ headers: {
3253
+ [name: string]: unknown;
3254
+ };
3255
+ content: {
3256
+ "application/json": {
3257
+ id: string;
3258
+ url: string;
3259
+ description: string | null;
3260
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3261
+ status: string;
3262
+ secret: string;
3263
+ apiVersion: string | null;
3264
+ consecutiveFailures: number;
3265
+ lastSuccessAt: string | null;
3266
+ lastFailureAt: string | null;
3267
+ createdAt: string;
3268
+ updatedAt: string;
3269
+ teamId: string;
3270
+ createdByUserId: string | null;
3271
+ };
3272
+ };
3273
+ };
3274
+ /** @description Bad Request */
3275
+ 400: {
3276
+ headers: {
3277
+ [name: string]: unknown;
3278
+ };
3279
+ content: {
3280
+ "application/json": {
3281
+ code: string;
3282
+ message: string;
3283
+ docs?: string;
3284
+ };
3285
+ };
3286
+ };
3287
+ /** @description Unauthorized */
3288
+ 401: {
3289
+ headers: {
3290
+ [name: string]: unknown;
3291
+ };
3292
+ content: {
3293
+ "application/json": {
3294
+ code: string;
3295
+ message: string;
3296
+ docs?: string;
3297
+ };
3298
+ };
3299
+ };
3300
+ /** @description Forbidden */
3301
+ 403: {
3302
+ headers: {
3303
+ [name: string]: unknown;
3304
+ };
3305
+ content: {
3306
+ "application/json": {
3307
+ code: string;
3308
+ message: string;
3309
+ docs?: string;
3310
+ };
3311
+ };
3312
+ };
3313
+ /** @description Not Found */
3314
+ 404: {
3315
+ headers: {
3316
+ [name: string]: unknown;
3317
+ };
3318
+ content: {
3319
+ "application/json": {
3320
+ code: string;
3321
+ message: string;
3322
+ docs?: string;
3323
+ };
3324
+ };
3325
+ };
3326
+ /** @description Method Not Allowed */
3327
+ 405: {
3328
+ headers: {
3329
+ [name: string]: unknown;
3330
+ };
3331
+ content: {
3332
+ "application/json": {
3333
+ code: string;
3334
+ message: string;
3335
+ docs?: string;
3336
+ };
3337
+ };
3338
+ };
3339
+ /** @description Conflict */
3340
+ 409: {
3341
+ headers: {
3342
+ [name: string]: unknown;
3343
+ };
3344
+ content: {
3345
+ "application/json": {
3346
+ code: string;
3347
+ message: string;
3348
+ docs?: string;
3349
+ };
3350
+ };
3351
+ };
3352
+ /** @description Too Many Requests */
3353
+ 429: {
3354
+ headers: {
3355
+ [name: string]: unknown;
3356
+ };
3357
+ content: {
3358
+ "application/json": {
3359
+ code: string;
3360
+ message: string;
3361
+ docs?: string;
3362
+ };
3363
+ };
3364
+ };
3365
+ /** @description Internal Server Error */
3366
+ 500: {
3367
+ headers: {
3368
+ [name: string]: unknown;
3369
+ };
3370
+ content: {
3371
+ "application/json": {
3372
+ code: string;
3373
+ message: string;
3374
+ docs?: string;
3375
+ };
3376
+ };
3377
+ };
3378
+ };
3379
+ };
3380
+ getWebhook: {
3381
+ parameters: {
3382
+ query?: never;
3383
+ header?: never;
3384
+ path: {
3385
+ id: string;
3386
+ };
3387
+ cookie?: never;
3388
+ };
3389
+ requestBody?: never;
3390
+ responses: {
3391
+ /** @description Get Webhook */
3392
+ 200: {
3393
+ headers: {
3394
+ [name: string]: unknown;
3395
+ };
3396
+ content: {
3397
+ "application/json": {
3398
+ id: string;
3399
+ url: string;
3400
+ description: string | null;
3401
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3402
+ status: string;
3403
+ secret: string;
3404
+ apiVersion: string | null;
3405
+ consecutiveFailures: number;
3406
+ lastSuccessAt: string | null;
3407
+ lastFailureAt: string | null;
3408
+ createdAt: string;
3409
+ updatedAt: string;
3410
+ teamId: string;
3411
+ createdByUserId: string | null;
3412
+ };
3413
+ };
3414
+ };
3415
+ /** @description Bad Request */
3416
+ 400: {
3417
+ headers: {
3418
+ [name: string]: unknown;
3419
+ };
3420
+ content: {
3421
+ "application/json": {
3422
+ code: string;
3423
+ message: string;
3424
+ docs?: string;
3425
+ };
3426
+ };
3427
+ };
3428
+ /** @description Unauthorized */
3429
+ 401: {
3430
+ headers: {
3431
+ [name: string]: unknown;
3432
+ };
3433
+ content: {
3434
+ "application/json": {
3435
+ code: string;
3436
+ message: string;
3437
+ docs?: string;
3438
+ };
3439
+ };
3440
+ };
3441
+ /** @description Forbidden */
3442
+ 403: {
3443
+ headers: {
3444
+ [name: string]: unknown;
3445
+ };
3446
+ content: {
3447
+ "application/json": {
3448
+ code: string;
3449
+ message: string;
3450
+ docs?: string;
3451
+ };
3452
+ };
3453
+ };
3454
+ /** @description Not Found */
3455
+ 404: {
3456
+ headers: {
3457
+ [name: string]: unknown;
3458
+ };
3459
+ content: {
3460
+ "application/json": {
3461
+ code: string;
3462
+ message: string;
3463
+ docs?: string;
3464
+ };
3465
+ };
3466
+ };
3467
+ /** @description Method Not Allowed */
3468
+ 405: {
3469
+ headers: {
3470
+ [name: string]: unknown;
3471
+ };
3472
+ content: {
3473
+ "application/json": {
3474
+ code: string;
3475
+ message: string;
3476
+ docs?: string;
3477
+ };
3478
+ };
3479
+ };
3480
+ /** @description Conflict */
3481
+ 409: {
3482
+ headers: {
3483
+ [name: string]: unknown;
3484
+ };
3485
+ content: {
3486
+ "application/json": {
3487
+ code: string;
3488
+ message: string;
3489
+ docs?: string;
3490
+ };
3491
+ };
3492
+ };
3493
+ /** @description Too Many Requests */
3494
+ 429: {
3495
+ headers: {
3496
+ [name: string]: unknown;
3497
+ };
3498
+ content: {
3499
+ "application/json": {
3500
+ code: string;
3501
+ message: string;
3502
+ docs?: string;
3503
+ };
3504
+ };
3505
+ };
3506
+ /** @description Internal Server Error */
3507
+ 500: {
3508
+ headers: {
3509
+ [name: string]: unknown;
3510
+ };
3511
+ content: {
3512
+ "application/json": {
3513
+ code: string;
3514
+ message: string;
3515
+ docs?: string;
3516
+ };
3517
+ };
3518
+ };
3519
+ };
3520
+ };
3521
+ deleteWebhook: {
3522
+ parameters: {
3523
+ query?: never;
3524
+ header?: never;
3525
+ path: {
3526
+ id: string;
3527
+ };
3528
+ cookie?: never;
3529
+ };
3530
+ requestBody?: never;
3531
+ responses: {
3532
+ /** @description Delete Webhook */
3533
+ 200: {
3534
+ headers: {
3535
+ [name: string]: unknown;
3536
+ };
3537
+ content: {
3538
+ "application/json": {
3539
+ id: string;
3540
+ url: string;
3541
+ description: string | null;
3542
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3543
+ status: string;
3544
+ secret: string;
3545
+ apiVersion: string | null;
3546
+ consecutiveFailures: number;
3547
+ lastSuccessAt: string | null;
3548
+ lastFailureAt: string | null;
3549
+ createdAt: string;
3550
+ updatedAt: string;
3551
+ teamId: string;
3552
+ createdByUserId: string | null;
3553
+ };
3554
+ };
3555
+ };
3556
+ /** @description Bad Request */
3557
+ 400: {
3558
+ headers: {
3559
+ [name: string]: unknown;
3560
+ };
3561
+ content: {
3562
+ "application/json": {
3563
+ code: string;
3564
+ message: string;
3565
+ docs?: string;
3566
+ };
3567
+ };
3568
+ };
3569
+ /** @description Unauthorized */
3570
+ 401: {
3571
+ headers: {
3572
+ [name: string]: unknown;
3573
+ };
3574
+ content: {
3575
+ "application/json": {
3576
+ code: string;
3577
+ message: string;
3578
+ docs?: string;
3579
+ };
3580
+ };
3581
+ };
3582
+ /** @description Forbidden */
3583
+ 403: {
3584
+ headers: {
3585
+ [name: string]: unknown;
3586
+ };
3587
+ content: {
3588
+ "application/json": {
3589
+ code: string;
3590
+ message: string;
3591
+ docs?: string;
3592
+ };
3593
+ };
3594
+ };
3595
+ /** @description Not Found */
3596
+ 404: {
3597
+ headers: {
3598
+ [name: string]: unknown;
3599
+ };
3600
+ content: {
3601
+ "application/json": {
3602
+ code: string;
3603
+ message: string;
3604
+ docs?: string;
3605
+ };
3606
+ };
3607
+ };
3608
+ /** @description Method Not Allowed */
3609
+ 405: {
3610
+ headers: {
3611
+ [name: string]: unknown;
3612
+ };
3613
+ content: {
3614
+ "application/json": {
3615
+ code: string;
3616
+ message: string;
3617
+ docs?: string;
3618
+ };
3619
+ };
3620
+ };
3621
+ /** @description Conflict */
3622
+ 409: {
3623
+ headers: {
3624
+ [name: string]: unknown;
3625
+ };
3626
+ content: {
3627
+ "application/json": {
3628
+ code: string;
3629
+ message: string;
3630
+ docs?: string;
3631
+ };
3632
+ };
3633
+ };
3634
+ /** @description Too Many Requests */
3635
+ 429: {
3636
+ headers: {
3637
+ [name: string]: unknown;
3638
+ };
3639
+ content: {
3640
+ "application/json": {
3641
+ code: string;
3642
+ message: string;
3643
+ docs?: string;
3644
+ };
3645
+ };
3646
+ };
3647
+ /** @description Internal Server Error */
3648
+ 500: {
3649
+ headers: {
3650
+ [name: string]: unknown;
3651
+ };
3652
+ content: {
3653
+ "application/json": {
3654
+ code: string;
3655
+ message: string;
3656
+ docs?: string;
3657
+ };
3658
+ };
3659
+ };
3660
+ };
3661
+ };
3662
+ updateWebhook: {
3663
+ parameters: {
3664
+ query?: never;
3665
+ header?: never;
3666
+ path: {
3667
+ id: string;
3668
+ };
3669
+ cookie?: never;
3670
+ };
3671
+ requestBody?: {
3672
+ content: {
3673
+ "application/json": {
3674
+ /** Format: uri */
3675
+ url?: string;
3676
+ description?: string | null;
3677
+ eventTypes?: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3678
+ active?: boolean;
3679
+ rotateSecret?: boolean;
3680
+ secret?: string;
3681
+ };
3682
+ };
3683
+ };
3684
+ responses: {
3685
+ /** @description Update Webhook */
3686
+ 200: {
3687
+ headers: {
3688
+ [name: string]: unknown;
3689
+ };
3690
+ content: {
3691
+ "application/json": {
3692
+ id: string;
3693
+ url: string;
3694
+ description: string | null;
3695
+ eventTypes: ("contact.created" | "contact.updated" | "contact.deleted" | "domain.created" | "domain.verified" | "domain.updated" | "domain.deleted" | "email.queued" | "email.sent" | "email.delivery_delayed" | "email.delivered" | "email.bounced" | "email.rejected" | "email.rendering_failure" | "email.complained" | "email.failed" | "email.cancelled" | "email.suppressed" | "email.opened" | "email.clicked")[];
3696
+ status: string;
3697
+ secret: string;
3698
+ apiVersion: string | null;
3699
+ consecutiveFailures: number;
3700
+ lastSuccessAt: string | null;
3701
+ lastFailureAt: string | null;
3702
+ createdAt: string;
3703
+ updatedAt: string;
3704
+ teamId: string;
3705
+ createdByUserId: string | null;
3706
+ };
3707
+ };
3708
+ };
3709
+ /** @description Bad Request */
3710
+ 400: {
3711
+ headers: {
3712
+ [name: string]: unknown;
3713
+ };
3714
+ content: {
3715
+ "application/json": {
3716
+ code: string;
3717
+ message: string;
3718
+ docs?: string;
3719
+ };
3720
+ };
3721
+ };
3722
+ /** @description Unauthorized */
3723
+ 401: {
3724
+ headers: {
3725
+ [name: string]: unknown;
3726
+ };
3727
+ content: {
3728
+ "application/json": {
3729
+ code: string;
3730
+ message: string;
3731
+ docs?: string;
3732
+ };
3733
+ };
3734
+ };
3735
+ /** @description Forbidden */
3736
+ 403: {
2002
3737
  headers: {
2003
3738
  [name: string]: unknown;
2004
3739
  };
2005
3740
  content: {
2006
3741
  "application/json": {
2007
- id: string;
2008
- name: string;
3742
+ code: string;
3743
+ message: string;
3744
+ docs?: string;
2009
3745
  };
2010
3746
  };
2011
3747
  };
2012
- };
2013
- };
2014
- getTemplates: {
2015
- parameters: {
2016
- query?: never;
2017
- header?: never;
2018
- path?: never;
2019
- cookie?: never;
2020
- };
2021
- requestBody?: never;
2022
- responses: {
2023
- /** @description List templates */
2024
- 200: {
3748
+ /** @description Not Found */
3749
+ 404: {
2025
3750
  headers: {
2026
3751
  [name: string]: unknown;
2027
3752
  };
2028
3753
  content: {
2029
3754
  "application/json": {
2030
- id: string;
2031
- name: string;
2032
- subject: string;
2033
- html?: string | null;
2034
- content?: string | null;
2035
- teamId: string;
2036
- createdAt: string;
2037
- updatedAt: string;
2038
- }[];
3755
+ code: string;
3756
+ message: string;
3757
+ docs?: string;
3758
+ };
2039
3759
  };
2040
3760
  };
2041
- };
2042
- };
2043
- createTemplate: {
2044
- parameters: {
2045
- query?: never;
2046
- header?: never;
2047
- path?: never;
2048
- cookie?: never;
2049
- };
2050
- requestBody?: {
2051
- content: {
2052
- "application/json": {
2053
- name: string;
2054
- subject: string;
2055
- html?: string;
2056
- content?: string;
3761
+ /** @description Method Not Allowed */
3762
+ 405: {
3763
+ headers: {
3764
+ [name: string]: unknown;
3765
+ };
3766
+ content: {
3767
+ "application/json": {
3768
+ code: string;
3769
+ message: string;
3770
+ docs?: string;
3771
+ };
2057
3772
  };
2058
3773
  };
2059
- };
2060
- responses: {
2061
- /** @description Create template */
2062
- 200: {
3774
+ /** @description Conflict */
3775
+ 409: {
2063
3776
  headers: {
2064
3777
  [name: string]: unknown;
2065
3778
  };
2066
3779
  content: {
2067
3780
  "application/json": {
2068
- id: string;
3781
+ code: string;
3782
+ message: string;
3783
+ docs?: string;
2069
3784
  };
2070
3785
  };
2071
3786
  };
2072
- };
2073
- };
2074
- getTemplate: {
2075
- parameters: {
2076
- query?: never;
2077
- header?: never;
2078
- path: {
2079
- id: string;
3787
+ /** @description Too Many Requests */
3788
+ 429: {
3789
+ headers: {
3790
+ [name: string]: unknown;
3791
+ };
3792
+ content: {
3793
+ "application/json": {
3794
+ code: string;
3795
+ message: string;
3796
+ docs?: string;
3797
+ };
3798
+ };
2080
3799
  };
2081
- cookie?: never;
2082
- };
2083
- requestBody?: never;
2084
- responses: {
2085
- /** @description Get template */
2086
- 200: {
3800
+ /** @description Internal Server Error */
3801
+ 500: {
2087
3802
  headers: {
2088
3803
  [name: string]: unknown;
2089
3804
  };
2090
3805
  content: {
2091
3806
  "application/json": {
2092
- id: string;
2093
- name: string;
2094
- subject: string;
2095
- html?: string | null;
2096
- content?: string | null;
2097
- teamId: string;
2098
- createdAt: string;
2099
- updatedAt: string;
3807
+ code: string;
3808
+ message: string;
3809
+ docs?: string;
2100
3810
  };
2101
3811
  };
2102
3812
  };
2103
3813
  };
2104
3814
  };
2105
- deleteTemplate: {
3815
+ testWebhook: {
2106
3816
  parameters: {
2107
3817
  query?: never;
2108
3818
  header?: never;
@@ -2113,67 +3823,55 @@ interface operations {
2113
3823
  };
2114
3824
  requestBody?: never;
2115
3825
  responses: {
2116
- /** @description Delete template */
3826
+ /** @description Test Webhook Triggered */
2117
3827
  200: {
2118
3828
  headers: {
2119
3829
  [name: string]: unknown;
2120
3830
  };
2121
3831
  content: {
2122
3832
  "application/json": {
2123
- success: boolean;
3833
+ id: string;
3834
+ type: string;
3835
+ createdAt: string;
3836
+ updatedAt: string;
3837
+ teamId: string;
3838
+ status: string;
3839
+ webhookId: string;
3840
+ payload: string;
3841
+ attempt: number;
3842
+ nextAttemptAt: string | null;
3843
+ lastError: string | null;
3844
+ responseStatus: number | null;
3845
+ responseTimeMs: number | null;
3846
+ responseText: string | null;
2124
3847
  };
2125
3848
  };
2126
3849
  };
2127
- };
2128
- };
2129
- updateTemplate: {
2130
- parameters: {
2131
- query?: never;
2132
- header?: never;
2133
- path: {
2134
- id: string;
2135
- };
2136
- cookie?: never;
2137
- };
2138
- requestBody?: {
2139
- content: {
2140
- "application/json": {
2141
- name?: string;
2142
- subject?: string;
2143
- html?: string;
2144
- content?: string;
2145
- };
2146
- };
2147
- };
2148
- responses: {
2149
- /** @description Update template */
2150
- 200: {
3850
+ /** @description Internal Server Error */
3851
+ 500: {
2151
3852
  headers: {
2152
3853
  [name: string]: unknown;
2153
3854
  };
2154
3855
  content: {
2155
3856
  "application/json": {
2156
- success: boolean;
3857
+ code: string;
3858
+ message: string;
3859
+ docs?: string;
2157
3860
  };
2158
3861
  };
2159
3862
  };
2160
3863
  };
2161
3864
  };
2162
- getSuppressions: {
3865
+ getTeam: {
2163
3866
  parameters: {
2164
- query?: {
2165
- page?: number;
2166
- limit?: number;
2167
- search?: string;
2168
- reason?: "HARD_BOUNCE" | "COMPLAINT" | "MANUAL" | "UNSUBSCRIBE" | null;
2169
- };
3867
+ query?: never;
2170
3868
  header?: never;
2171
3869
  path?: never;
2172
3870
  cookie?: never;
2173
3871
  };
2174
3872
  requestBody?: never;
2175
3873
  responses: {
2176
- /** @description List suppressions */
3874
+ /** @description Current team information */
2177
3875
  200: {
2178
3876
  headers: {
2179
3877
  [name: string]: unknown;
@@ -2182,50 +3880,57 @@ interface operations {
2182
3880
  "application/json": Record<string, never>;
2183
3881
  };
2184
3882
  };
2185
- };
2186
- };
2187
- addSuppression: {
2188
- parameters: {
2189
- query?: never;
2190
- header?: never;
2191
- path?: never;
2192
- cookie?: never;
2193
- };
2194
- requestBody?: {
2195
- content: {
2196
- "application/json": {
2197
- /** Format: email */
2198
- email: string;
2199
- /** @enum {string} */
2200
- reason: "HARD_BOUNCE" | "COMPLAINT" | "MANUAL" | "UNSUBSCRIBE";
2201
- source?: string;
3883
+ /** @description Unauthorized */
3884
+ 401: {
3885
+ headers: {
3886
+ [name: string]: unknown;
3887
+ };
3888
+ content: {
3889
+ "application/json": {
3890
+ code: string;
3891
+ message: string;
3892
+ docs?: string;
3893
+ };
2202
3894
  };
2203
3895
  };
2204
- };
2205
- responses: {
2206
- /** @description Create suppression */
2207
- 200: {
3896
+ /** @description Not Found */
3897
+ 404: {
2208
3898
  headers: {
2209
3899
  [name: string]: unknown;
2210
3900
  };
2211
3901
  content: {
2212
- "application/json": Record<string, never>;
3902
+ "application/json": {
3903
+ code: string;
3904
+ message: string;
3905
+ docs?: string;
3906
+ };
3907
+ };
3908
+ };
3909
+ /** @description Internal Server Error */
3910
+ 500: {
3911
+ headers: {
3912
+ [name: string]: unknown;
3913
+ };
3914
+ content: {
3915
+ "application/json": {
3916
+ code: string;
3917
+ message: string;
3918
+ docs?: string;
3919
+ };
2213
3920
  };
2214
3921
  };
2215
3922
  };
2216
3923
  };
2217
- deleteSuppression: {
3924
+ getTeams: {
2218
3925
  parameters: {
2219
3926
  query?: never;
2220
3927
  header?: never;
2221
- path: {
2222
- email: string;
2223
- };
3928
+ path?: never;
2224
3929
  cookie?: never;
2225
3930
  };
2226
3931
  requestBody?: never;
2227
3932
  responses: {
2228
- /** @description Delete suppression */
3933
+ /** @description List of teams */
2229
3934
  200: {
2230
3935
  headers: {
2231
3936
  [name: string]: unknown;
@@ -2234,13 +3939,30 @@ interface operations {
2234
3939
  "application/json": Record<string, never>;
2235
3940
  };
2236
3941
  };
2237
- /** @description Suppression not found */
2238
- 404: {
3942
+ /** @description Unauthorized */
3943
+ 401: {
2239
3944
  headers: {
2240
3945
  [name: string]: unknown;
2241
3946
  };
2242
3947
  content: {
2243
- "application/json": Record<string, never>;
3948
+ "application/json": {
3949
+ code: string;
3950
+ message: string;
3951
+ docs?: string;
3952
+ };
3953
+ };
3954
+ };
3955
+ /** @description Internal Server Error */
3956
+ 500: {
3957
+ headers: {
3958
+ [name: string]: unknown;
3959
+ };
3960
+ content: {
3961
+ "application/json": {
3962
+ code: string;
3963
+ message: string;
3964
+ docs?: string;
3965
+ };
2244
3966
  };
2245
3967
  };
2246
3968
  };
@@ -2368,6 +4090,11 @@ type GetUnsubscribesResponse = {
2368
4090
  count: number | null;
2369
4091
  error: ErrorResponse | null;
2370
4092
  };
4093
+ type GetEmailEventsResponseSuccess = paths["/v1/emails/{emailId}/events"]["get"]["responses"]["200"]["content"]["application/json"];
4094
+ type GetEmailEventsResponse = {
4095
+ data: GetEmailEventsResponseSuccess | null;
4096
+ error: ErrorResponse | null;
4097
+ };
2371
4098
  declare class Emails {
2372
4099
  private readonly unsent;
2373
4100
  constructor(unsent: unsent);
@@ -2402,6 +4129,10 @@ declare class Emails {
2402
4129
  get(id: string): Promise<GetEmailResponse>;
2403
4130
  update(id: string, payload: UpdateEmailPayload): Promise<UpdateEmailResponse>;
2404
4131
  cancel(id: string): Promise<CancelEmailResponse>;
4132
+ getEvents(emailId: string, query?: {
4133
+ page?: number;
4134
+ limit?: number;
4135
+ }): Promise<GetEmailEventsResponse>;
2405
4136
  }
2406
4137
 
2407
4138
  type CreateDomainPayload = NonNullable<paths["/v1/domains"]["post"]["requestBody"]>["content"]["application/json"];
@@ -2430,6 +4161,16 @@ type DeleteDomainResponse = {
2430
4161
  error: ErrorResponse | null;
2431
4162
  };
2432
4163
  type DeleteDomainResponseSuccess = paths["/v1/domains/{id}"]["delete"]["responses"]["200"]["content"]["application/json"];
4164
+ type GetDomainAnalyticsResponseSuccess = paths["/v1/domains/{id}/analytics"]["get"]["responses"]["200"]["content"]["application/json"];
4165
+ type GetDomainAnalyticsResponse = {
4166
+ data: GetDomainAnalyticsResponseSuccess | null;
4167
+ error: ErrorResponse | null;
4168
+ };
4169
+ type GetDomainStatsResponseSuccess = paths["/v1/domains/{id}/stats"]["get"]["responses"]["200"]["content"]["application/json"];
4170
+ type GetDomainStatsResponse = {
4171
+ data: GetDomainStatsResponseSuccess | null;
4172
+ error: ErrorResponse | null;
4173
+ };
2433
4174
  declare class Domains {
2434
4175
  private readonly unsent;
2435
4176
  constructor(unsent: unsent);
@@ -2438,6 +4179,13 @@ declare class Domains {
2438
4179
  verify(id: string): Promise<VerifyDomainResponse>;
2439
4180
  get(id: string): Promise<GetDomainResponse>;
2440
4181
  delete(id: string): Promise<DeleteDomainResponse>;
4182
+ getAnalytics(id: string, query?: {
4183
+ period?: "day" | "week" | "month";
4184
+ }): Promise<GetDomainAnalyticsResponse>;
4185
+ getStats(id: string, query?: {
4186
+ startDate?: string;
4187
+ endDate?: string;
4188
+ }): Promise<GetDomainStatsResponse>;
2441
4189
  }
2442
4190
 
2443
4191
  type CreateContactBookPayload = NonNullable<paths["/v1/contactBooks"]["post"]["requestBody"]>["content"]["application/json"];
@@ -2479,7 +4227,7 @@ declare class ContactBooks {
2479
4227
 
2480
4228
  type ListTemplatesResponseSuccess = paths["/v1/templates"]["get"]["responses"]["200"]["content"]["application/json"];
2481
4229
  type ListTemplatesResponse = {
2482
- data: ListTemplatesResponseSuccess | null;
4230
+ data: ListTemplatesResponseSuccess["data"] | null;
2483
4231
  error: ErrorResponse | null;
2484
4232
  };
2485
4233
  type CreateTemplatePayload = NonNullable<paths["/v1/templates"]["post"]["requestBody"]>["content"]["application/json"];
@@ -2514,48 +4262,70 @@ declare class Templates {
2514
4262
  delete(id: string): Promise<DeleteTemplateResponse>;
2515
4263
  }
2516
4264
 
4265
+ interface Webhook {
4266
+ id: string;
4267
+ url: string;
4268
+ description: string | null;
4269
+ eventTypes: string[];
4270
+ status: string;
4271
+ createdAt: string;
4272
+ updatedAt?: string;
4273
+ secret?: string;
4274
+ }
4275
+ type CreateWebhookPayload = {
4276
+ url: string;
4277
+ description?: string;
4278
+ eventTypes: string[];
4279
+ secret?: string;
4280
+ };
4281
+ type UpdateWebhookPayload = {
4282
+ url?: string;
4283
+ description?: string | null;
4284
+ eventTypes?: string[];
4285
+ active?: boolean;
4286
+ rotateSecret?: boolean;
4287
+ secret?: string;
4288
+ };
2517
4289
  type ListWebhooksResponse = {
2518
- data: any[] | null;
4290
+ data: Webhook[] | null;
4291
+ error: ErrorResponse | null;
4292
+ };
4293
+ type GetWebhookResponse = {
4294
+ data: Webhook | null;
2519
4295
  error: ErrorResponse | null;
2520
4296
  };
2521
4297
  type CreateWebhookResponse = {
2522
- data: {
2523
- id: string;
2524
- } | null;
4298
+ data: Webhook | null;
2525
4299
  error: ErrorResponse | null;
2526
4300
  };
2527
4301
  type UpdateWebhookResponse = {
4302
+ data: Webhook | null;
4303
+ error: ErrorResponse | null;
4304
+ };
4305
+ type DeleteWebhookResponse = {
2528
4306
  data: {
2529
4307
  success: boolean;
2530
4308
  } | null;
2531
4309
  error: ErrorResponse | null;
2532
4310
  };
2533
- type DeleteWebhookResponse = {
4311
+ type TestWebhookResponse = {
2534
4312
  data: {
2535
- success: boolean;
4313
+ callId: string;
2536
4314
  } | null;
2537
4315
  error: ErrorResponse | null;
2538
4316
  };
2539
4317
  /**
2540
4318
  * Webhooks resource
2541
- *
2542
- * @remarks
2543
- * This resource is currently in development and not fully implemented on the server side yet.
2544
- * The methods below are placeholders/preparations for the future implementation.
2545
4319
  */
2546
4320
  declare class Webhooks {
2547
4321
  private readonly unsent;
2548
4322
  constructor(unsent: unsent);
2549
4323
  list(): Promise<ListWebhooksResponse>;
2550
- create(payload: {
2551
- url: string;
2552
- events: string[];
2553
- }): Promise<CreateWebhookResponse>;
2554
- update(id: string, payload: {
2555
- url?: string;
2556
- events?: string[];
2557
- }): Promise<UpdateWebhookResponse>;
4324
+ get(id: string): Promise<GetWebhookResponse>;
4325
+ create(payload: CreateWebhookPayload): Promise<CreateWebhookResponse>;
4326
+ update(id: string, payload: UpdateWebhookPayload): Promise<UpdateWebhookResponse>;
2558
4327
  delete(id: string): Promise<DeleteWebhookResponse>;
4328
+ test(id: string): Promise<TestWebhookResponse>;
2559
4329
  }
2560
4330
 
2561
4331
  type GetAnalyticsResponseSuccess = paths["/v1/analytics"]["get"]["responses"]["200"]["content"]["application/json"];
@@ -2624,9 +4394,12 @@ declare class Campaigns {
2624
4394
  resume(campaignId: string): Promise<CampaignActionResponse>;
2625
4395
  }
2626
4396
 
2627
- type ListSuppressionsResponseSuccess = paths["/v1/suppressions"]["get"]["responses"]["200"]["content"]["application/json"];
4397
+ type Suppression = paths["/v1/suppressions"]["post"]["responses"]["200"]["content"]["application/json"];
2628
4398
  type ListSuppressionsResponse = {
2629
- data: ListSuppressionsResponseSuccess | null;
4399
+ data: {
4400
+ data: Suppression[];
4401
+ total: number;
4402
+ } | null;
2630
4403
  error: ErrorResponse | null;
2631
4404
  };
2632
4405
  type CreateSuppressionPayload = NonNullable<paths["/v1/suppressions"]["post"]["requestBody"]>["content"]["application/json"];
@@ -2677,8 +4450,9 @@ declare class ApiKeys {
2677
4450
  delete(id: string): Promise<DeleteApiKeyResponse>;
2678
4451
  }
2679
4452
 
4453
+ type GetSettingsResponseSuccess = paths["/v1/settings"]["get"]["responses"]["200"]["content"]["application/json"];
2680
4454
  type GetSettingsResponse = {
2681
- data: any | null;
4455
+ data: GetSettingsResponseSuccess | null;
2682
4456
  error: ErrorResponse | null;
2683
4457
  };
2684
4458
  declare class Settings {
@@ -2687,6 +4461,97 @@ declare class Settings {
2687
4461
  get(): Promise<GetSettingsResponse>;
2688
4462
  }
2689
4463
 
4464
+ type ListEventsResponseSuccess = paths["/v1/events"]["get"]["responses"]["200"]["content"]["application/json"];
4465
+ type ListEventsResponse = {
4466
+ data: ListEventsResponseSuccess | null;
4467
+ error: ErrorResponse | null;
4468
+ };
4469
+ declare class Events {
4470
+ private readonly unsent;
4471
+ constructor(unsent: unsent);
4472
+ list(query?: {
4473
+ page?: number;
4474
+ limit?: number;
4475
+ status?: "SCHEDULED" | "QUEUED" | "SENT" | "DELIVERY_DELAYED" | "BOUNCED" | "REJECTED" | "RENDERING_FAILURE" | "DELIVERED" | "OPENED" | "CLICKED" | "COMPLAINED" | "FAILED" | "CANCELLED" | "SUPPRESSED";
4476
+ startDate?: string;
4477
+ }): Promise<ListEventsResponse>;
4478
+ }
4479
+
4480
+ type GetMetricsResponseSuccess = paths["/v1/metrics"]["get"]["responses"]["200"]["content"]["application/json"];
4481
+ type GetMetricsResponse = {
4482
+ data: GetMetricsResponseSuccess | null;
4483
+ error: ErrorResponse | null;
4484
+ };
4485
+ declare class Metrics {
4486
+ private readonly unsent;
4487
+ constructor(unsent: unsent);
4488
+ get(query?: {
4489
+ period?: "day" | "week" | "month";
4490
+ }): Promise<GetMetricsResponse>;
4491
+ }
4492
+
4493
+ type GetStatsResponseSuccess = paths["/v1/stats"]["get"]["responses"]["200"]["content"]["application/json"];
4494
+ type GetStatsResponse = {
4495
+ data: GetStatsResponseSuccess | null;
4496
+ error: ErrorResponse | null;
4497
+ };
4498
+ declare class Stats {
4499
+ private readonly unsent;
4500
+ constructor(unsent: unsent);
4501
+ get(query?: {
4502
+ startDate?: string;
4503
+ endDate?: string;
4504
+ }): Promise<GetStatsResponse>;
4505
+ }
4506
+
4507
+ type GetActivityResponseSuccess = paths["/v1/activity"]["get"]["responses"]["200"]["content"]["application/json"];
4508
+ type GetActivityResponse = {
4509
+ data: GetActivityResponseSuccess | null;
4510
+ error: ErrorResponse | null;
4511
+ };
4512
+ declare class Activity {
4513
+ private readonly unsent;
4514
+ constructor(unsent: unsent);
4515
+ get(query?: {
4516
+ page?: number;
4517
+ limit?: number;
4518
+ }): Promise<GetActivityResponse>;
4519
+ }
4520
+
4521
+ type GetTeamResponseSuccess = paths["/v1/team"]["get"]["responses"]["200"]["content"]["application/json"];
4522
+ type GetTeamResponse = {
4523
+ data: GetTeamResponseSuccess | null;
4524
+ error: ErrorResponse | null;
4525
+ };
4526
+ type GetTeamsResponseSuccess = paths["/v1/teams"]["get"]["responses"]["200"]["content"]["application/json"];
4527
+ type GetTeamsResponse = {
4528
+ data: GetTeamsResponseSuccess | null;
4529
+ error: ErrorResponse | null;
4530
+ };
4531
+ declare class Teams {
4532
+ private readonly unsent;
4533
+ constructor(unsent: unsent);
4534
+ get(): Promise<GetTeamResponse>;
4535
+ list(): Promise<GetTeamsResponse>;
4536
+ }
4537
+
4538
+ type GetHealthResponseSuccess = paths["/v1/health"]["get"]["responses"]["200"]["content"]["application/json"];
4539
+ type GetHealthResponse = {
4540
+ data: GetHealthResponseSuccess | null;
4541
+ error: ErrorResponse | null;
4542
+ };
4543
+ type GetVersionResponseSuccess = paths["/v1/version"]["get"]["responses"]["200"]["content"]["application/json"];
4544
+ type GetVersionResponse = {
4545
+ data: GetVersionResponseSuccess | null;
4546
+ error: ErrorResponse | null;
4547
+ };
4548
+ declare class System {
4549
+ private readonly unsent;
4550
+ constructor(unsent: unsent);
4551
+ health(): Promise<GetHealthResponse>;
4552
+ version(): Promise<GetVersionResponse>;
4553
+ }
4554
+
2690
4555
  declare class unsent {
2691
4556
  readonly key?: string | undefined;
2692
4557
  private readonly headers;
@@ -2701,6 +4566,12 @@ declare class unsent {
2701
4566
  readonly suppressions: Suppressions;
2702
4567
  readonly apiKeys: ApiKeys;
2703
4568
  readonly settings: Settings;
4569
+ readonly events: Events;
4570
+ readonly metrics: Metrics;
4571
+ readonly stats: Stats;
4572
+ readonly activity: Activity;
4573
+ readonly teams: Teams;
4574
+ readonly system: System;
2704
4575
  url: string;
2705
4576
  constructor(key?: string | undefined, url?: string);
2706
4577
  fetchRequest<T>(path: string, options?: {}): Promise<{
@@ -2731,4 +4602,4 @@ declare class unsent {
2731
4602
  }>;
2732
4603
  }
2733
4604
 
2734
- export { Analytics as analytics, Campaigns as campaigns, ContactBooks as contactBooks, Templates as templates, unsent, Webhooks as webhooks };
4605
+ export { Activity as activity, Analytics as analytics, Campaigns as campaigns, ContactBooks as contactBooks, Events as events, Metrics as metrics, Stats as stats, System as system, Teams as teams, Templates as templates, unsent, Webhooks as webhooks };