@volter/twin-postmark 0.1.0
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/LICENSE +202 -0
- package/README.md +144 -0
- package/client/postmark-mirror.css +79 -0
- package/client/postmark-mirror.tsx +221 -0
- package/dist/client/postmark-mirror.bundle.js +321 -0
- package/dist/client/postmark-mirror.css +79 -0
- package/dist/client/postmark-mirror.d.ts +18 -0
- package/dist/client/postmark-mirror.js +153 -0
- package/dist/client/postmark-mirror.tsx +221 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +31 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +54 -0
- package/dist/src/postmark-capabilities.d.ts +12 -0
- package/dist/src/postmark-capabilities.js +1502 -0
- package/dist/src/postmark-conformance.d.ts +33 -0
- package/dist/src/postmark-conformance.js +265 -0
- package/dist/src/postmark-connector.d.ts +167 -0
- package/dist/src/postmark-connector.js +251 -0
- package/dist/src/postmark-events.d.ts +85 -0
- package/dist/src/postmark-events.js +169 -0
- package/dist/src/postmark-mirror-ui.d.ts +58 -0
- package/dist/src/postmark-mirror-ui.js +207 -0
- package/dist/src/postmark-perform-harness.d.ts +9 -0
- package/dist/src/postmark-perform-harness.js +24 -0
- package/dist/src/postmark-server.d.ts +14 -0
- package/dist/src/postmark-server.js +29 -0
- package/dist/src/postmark-twin.d.ts +82 -0
- package/dist/src/postmark-twin.js +1575 -0
- package/dist/test-fixtures/postmark-swagger-operations.json +846 -0
- package/package.json +76 -0
- package/src/cli.ts +29 -0
- package/src/index.ts +89 -0
- package/src/postmark-capabilities.ts +1737 -0
- package/src/postmark-conformance.ts +282 -0
- package/src/postmark-connector.ts +312 -0
- package/src/postmark-events.ts +189 -0
- package/src/postmark-mirror-ui.ts +213 -0
- package/src/postmark-perform-harness.ts +21 -0
- package/src/postmark-server.ts +37 -0
- package/src/postmark-twin.ts +1520 -0
- package/test-fixtures/postmark-swagger-operations.json +846 -0
|
@@ -0,0 +1,846 @@
|
|
|
1
|
+
{
|
|
2
|
+
"swagger": "2.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Postmark API (operation inventory)",
|
|
5
|
+
"version": "server 1.0.0 + account 0.9.0",
|
|
6
|
+
"description": "The OPERATION INVENTORY machine-derived from Postmark's OWN first-party Swagger 2.0 documents, https://postmarkapp.com/swagger/server.yml (title \"Postmark API\", info.version 1.0.0, 43 operations over 38 paths) and https://postmarkapp.com/swagger/account.yml (title \"Postmark Account-level API\", info.version 0.9.0, 23 operations over 14 paths), both fetched read-only 2026-08-24. HOW THEY WERE FOUND, because this is not discoverable from any Postmark HTML page: Postmark advertises them per RFC 8631 on its own HTTP responses. `curl -sSLD - https://api.postmarkapp.com/` (and developer.postmarkapp.com, which 302s to the same place) answers with `link: </developer>; rel=\"service-doc\"; title=\"Postmark API documentation\", </swagger/server.yml>; rel=\"service-desc\"; type=\"application/yaml\"; title=\"Postmark Server API\", </swagger/account.yml>; rel=\"service-desc\"; type=\"application/yaml\"; title=\"Postmark Account API\"`. The relative paths resolve on the APEX host only (postmarkapp.com); developer.postmarkapp.com/swagger/server.yml and api.postmarkapp.com/swagger/server.yml both 404. The two documents describe ONE API \u2014 same host api.postmarkapp.com, same basePath / \u2014 split along Postmark's two-token line, which the documents themselves state per operation: every server.yml operation takes an `X-Postmark-Server-Token` header parameter and every account.yml operation takes `X-Postmark-Account-Token` (neither document uses securityDefinitions; both leave it empty). That per-operation token is preserved on each entry here as `x-postmark-token`, and which document an operation came from as `x-postmark-document`. There is NO method+path collision between the two, so this merged inventory is a faithful union. Method + path + operationId + summary ONLY: this is the census DENOMINATOR, not a response-shape oracle \u2014 the two documents carry 45 + 19 definitions which stay authoritative upstream and are re-fetched when a shape needs checking.",
|
|
7
|
+
"x-source": "https://postmarkapp.com/swagger/server.yml",
|
|
8
|
+
"x-source-account": "https://postmarkapp.com/swagger/account.yml",
|
|
9
|
+
"x-source-discovery": "RFC 8631 Link rel=\"service-desc\" on api.postmarkapp.com / developer.postmarkapp.com",
|
|
10
|
+
"x-sdk-route-count": 85
|
|
11
|
+
},
|
|
12
|
+
"host": "api.postmarkapp.com",
|
|
13
|
+
"basePath": "/",
|
|
14
|
+
"paths": {
|
|
15
|
+
"/bounces": {
|
|
16
|
+
"get": {
|
|
17
|
+
"operationId": "getBounces",
|
|
18
|
+
"summary": "Get bounces",
|
|
19
|
+
"x-postmark-document": "server",
|
|
20
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
21
|
+
"responses": {
|
|
22
|
+
"200": {
|
|
23
|
+
"description": "Get bounces"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"/bounces/{bounceid}": {
|
|
29
|
+
"get": {
|
|
30
|
+
"operationId": "getSingleBounce",
|
|
31
|
+
"summary": "Get a single bounce",
|
|
32
|
+
"x-postmark-document": "server",
|
|
33
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
34
|
+
"responses": {
|
|
35
|
+
"200": {
|
|
36
|
+
"description": "Get a single bounce"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"/bounces/{bounceid}/activate": {
|
|
42
|
+
"put": {
|
|
43
|
+
"operationId": "activateBounce",
|
|
44
|
+
"summary": "Activate a bounce",
|
|
45
|
+
"x-postmark-document": "server",
|
|
46
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
47
|
+
"responses": {
|
|
48
|
+
"200": {
|
|
49
|
+
"description": "Activate a bounce"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"/bounces/{bounceid}/dump": {
|
|
55
|
+
"get": {
|
|
56
|
+
"operationId": null,
|
|
57
|
+
"summary": "Get bounce dump",
|
|
58
|
+
"x-postmark-document": "server",
|
|
59
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
60
|
+
"responses": {
|
|
61
|
+
"200": {
|
|
62
|
+
"description": "Get bounce dump"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"/deliverystats": {
|
|
68
|
+
"get": {
|
|
69
|
+
"operationId": "getDeliveryStats",
|
|
70
|
+
"summary": "Get delivery stats",
|
|
71
|
+
"x-postmark-document": "server",
|
|
72
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
73
|
+
"responses": {
|
|
74
|
+
"200": {
|
|
75
|
+
"description": "Get delivery stats"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"/domains": {
|
|
81
|
+
"get": {
|
|
82
|
+
"operationId": "listDomains",
|
|
83
|
+
"summary": "List Domains",
|
|
84
|
+
"x-postmark-document": "account",
|
|
85
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
86
|
+
"responses": {
|
|
87
|
+
"200": {
|
|
88
|
+
"description": "List Domains"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"post": {
|
|
93
|
+
"operationId": "createDomain",
|
|
94
|
+
"summary": "Create a Domain",
|
|
95
|
+
"x-postmark-document": "account",
|
|
96
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
97
|
+
"responses": {
|
|
98
|
+
"200": {
|
|
99
|
+
"description": "Create a Domain"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"/domains/{domainid}": {
|
|
105
|
+
"get": {
|
|
106
|
+
"operationId": "getDomain",
|
|
107
|
+
"summary": "Get a Domain",
|
|
108
|
+
"x-postmark-document": "account",
|
|
109
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
110
|
+
"responses": {
|
|
111
|
+
"200": {
|
|
112
|
+
"description": "Get a Domain"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"put": {
|
|
117
|
+
"operationId": "editDomain",
|
|
118
|
+
"summary": "Update a Domain",
|
|
119
|
+
"x-postmark-document": "account",
|
|
120
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
121
|
+
"responses": {
|
|
122
|
+
"200": {
|
|
123
|
+
"description": "Update a Domain"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"delete": {
|
|
128
|
+
"operationId": "deleteDomain",
|
|
129
|
+
"summary": "Delete a Domain",
|
|
130
|
+
"x-postmark-document": "account",
|
|
131
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
132
|
+
"responses": {
|
|
133
|
+
"200": {
|
|
134
|
+
"description": "Delete a Domain"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"/domains/{domainid}/rotatedkim": {
|
|
140
|
+
"post": {
|
|
141
|
+
"operationId": "rotateDKIMKeyForDomain",
|
|
142
|
+
"summary": "Rotate DKIM Key",
|
|
143
|
+
"x-postmark-document": "account",
|
|
144
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
145
|
+
"responses": {
|
|
146
|
+
"200": {
|
|
147
|
+
"description": "Rotate DKIM Key"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"/domains/{domainid}/verifydkim": {
|
|
153
|
+
"put": {
|
|
154
|
+
"operationId": "requestDkimVerificationForDomain",
|
|
155
|
+
"summary": "Request DNS Verification for DKIM",
|
|
156
|
+
"x-postmark-document": "account",
|
|
157
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
158
|
+
"responses": {
|
|
159
|
+
"200": {
|
|
160
|
+
"description": "Request DNS Verification for DKIM"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"/domains/{domainid}/verifyreturnpath": {
|
|
166
|
+
"put": {
|
|
167
|
+
"operationId": "requestReturnPathVerificationForDomain",
|
|
168
|
+
"summary": "Request DNS Verification for Return-Path",
|
|
169
|
+
"x-postmark-document": "account",
|
|
170
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
171
|
+
"responses": {
|
|
172
|
+
"200": {
|
|
173
|
+
"description": "Request DNS Verification for Return-Path"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"/domains/{domainid}/verifyspf": {
|
|
179
|
+
"post": {
|
|
180
|
+
"operationId": "requestSPFVerificationForDomain",
|
|
181
|
+
"summary": "Request DNS Verification for SPF",
|
|
182
|
+
"x-postmark-document": "account",
|
|
183
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
184
|
+
"responses": {
|
|
185
|
+
"200": {
|
|
186
|
+
"description": "Request DNS Verification for SPF"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"/email": {
|
|
192
|
+
"post": {
|
|
193
|
+
"operationId": "sendEmail",
|
|
194
|
+
"summary": "Send a single email",
|
|
195
|
+
"x-postmark-document": "server",
|
|
196
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
197
|
+
"responses": {
|
|
198
|
+
"200": {
|
|
199
|
+
"description": "Send a single email"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"/email/batch": {
|
|
205
|
+
"post": {
|
|
206
|
+
"operationId": "sendEmailBatch",
|
|
207
|
+
"summary": "Send a batch of emails",
|
|
208
|
+
"x-postmark-document": "server",
|
|
209
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
210
|
+
"responses": {
|
|
211
|
+
"200": {
|
|
212
|
+
"description": "Send a batch of emails"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"/email/batchWithTemplates": {
|
|
218
|
+
"post": {
|
|
219
|
+
"operationId": "sendEmailBatchWithTemplates",
|
|
220
|
+
"summary": "Send a batch of email using templates.",
|
|
221
|
+
"x-postmark-document": "server",
|
|
222
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
223
|
+
"responses": {
|
|
224
|
+
"200": {
|
|
225
|
+
"description": "Send a batch of email using templates."
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"/email/withTemplate": {
|
|
231
|
+
"post": {
|
|
232
|
+
"operationId": "sendEmailWithTemplate",
|
|
233
|
+
"summary": "Send an email using a Template",
|
|
234
|
+
"x-postmark-document": "server",
|
|
235
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
236
|
+
"responses": {
|
|
237
|
+
"200": {
|
|
238
|
+
"description": "Send an email using a Template"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"/messages/inbound": {
|
|
244
|
+
"get": {
|
|
245
|
+
"operationId": "searchInboundMessages",
|
|
246
|
+
"summary": "Inbound message search",
|
|
247
|
+
"x-postmark-document": "server",
|
|
248
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
249
|
+
"responses": {
|
|
250
|
+
"200": {
|
|
251
|
+
"description": "Inbound message search"
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"/messages/inbound/{messageid}/bypass": {
|
|
257
|
+
"put": {
|
|
258
|
+
"operationId": "bypassRulesForInboundMessage",
|
|
259
|
+
"summary": "Bypass rules for a blocked inbound message",
|
|
260
|
+
"x-postmark-document": "server",
|
|
261
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
262
|
+
"responses": {
|
|
263
|
+
"200": {
|
|
264
|
+
"description": "Bypass rules for a blocked inbound message"
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"/messages/inbound/{messageid}/details": {
|
|
270
|
+
"get": {
|
|
271
|
+
"operationId": "getInboundMessageDetails",
|
|
272
|
+
"summary": "Inbound message details",
|
|
273
|
+
"x-postmark-document": "server",
|
|
274
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
275
|
+
"responses": {
|
|
276
|
+
"200": {
|
|
277
|
+
"description": "Inbound message details"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"/messages/inbound/{messageid}/retry": {
|
|
283
|
+
"put": {
|
|
284
|
+
"operationId": "retryInboundMessageProcessing",
|
|
285
|
+
"summary": "Retry a failed inbound message for processing",
|
|
286
|
+
"x-postmark-document": "server",
|
|
287
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
288
|
+
"responses": {
|
|
289
|
+
"200": {
|
|
290
|
+
"description": "Retry a failed inbound message for processing"
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"/messages/outbound": {
|
|
296
|
+
"get": {
|
|
297
|
+
"operationId": "searchOutboundMessages",
|
|
298
|
+
"summary": "Outbound message search",
|
|
299
|
+
"x-postmark-document": "server",
|
|
300
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
301
|
+
"responses": {
|
|
302
|
+
"200": {
|
|
303
|
+
"description": "Outbound message search"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
"/messages/outbound/clicks": {
|
|
309
|
+
"get": {
|
|
310
|
+
"operationId": "searchClicksForOutboundMessages",
|
|
311
|
+
"summary": "Clicks for a all messages",
|
|
312
|
+
"x-postmark-document": "server",
|
|
313
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
314
|
+
"responses": {
|
|
315
|
+
"200": {
|
|
316
|
+
"description": "Clicks for a all messages"
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
"/messages/outbound/clicks/{messageid}": {
|
|
322
|
+
"get": {
|
|
323
|
+
"operationId": "getClicksForSingleOutboundMessage",
|
|
324
|
+
"summary": "Retrieve Message Clicks",
|
|
325
|
+
"x-postmark-document": "server",
|
|
326
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
327
|
+
"responses": {
|
|
328
|
+
"200": {
|
|
329
|
+
"description": "Retrieve Message Clicks"
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"/messages/outbound/opens": {
|
|
335
|
+
"get": {
|
|
336
|
+
"operationId": "searchOpensForOutboundMessages",
|
|
337
|
+
"summary": "Opens for all messages",
|
|
338
|
+
"x-postmark-document": "server",
|
|
339
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
340
|
+
"responses": {
|
|
341
|
+
"200": {
|
|
342
|
+
"description": "Opens for all messages"
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
"/messages/outbound/opens/{messageid}": {
|
|
348
|
+
"get": {
|
|
349
|
+
"operationId": "getOpensForSingleOutboundMessage",
|
|
350
|
+
"summary": "Retrieve Message Opens",
|
|
351
|
+
"x-postmark-document": "server",
|
|
352
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
353
|
+
"responses": {
|
|
354
|
+
"200": {
|
|
355
|
+
"description": "Retrieve Message Opens"
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"/messages/outbound/{messageid}/details": {
|
|
361
|
+
"get": {
|
|
362
|
+
"operationId": "getOutboundMessageDetails",
|
|
363
|
+
"summary": "Outbound message details",
|
|
364
|
+
"x-postmark-document": "server",
|
|
365
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
366
|
+
"responses": {
|
|
367
|
+
"200": {
|
|
368
|
+
"description": "Outbound message details"
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
"/messages/outbound/{messageid}/dump": {
|
|
374
|
+
"get": {
|
|
375
|
+
"operationId": "getOutboundMessageDump",
|
|
376
|
+
"summary": "Outbound message dump",
|
|
377
|
+
"x-postmark-document": "server",
|
|
378
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
379
|
+
"responses": {
|
|
380
|
+
"200": {
|
|
381
|
+
"description": "Outbound message dump"
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"/senders": {
|
|
387
|
+
"get": {
|
|
388
|
+
"operationId": "listSenderSignatures",
|
|
389
|
+
"summary": "List Sender Signatures",
|
|
390
|
+
"x-postmark-document": "account",
|
|
391
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
392
|
+
"responses": {
|
|
393
|
+
"200": {
|
|
394
|
+
"description": "List Sender Signatures"
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"post": {
|
|
399
|
+
"operationId": "createSenderSignature",
|
|
400
|
+
"summary": "Create a Sender Signature",
|
|
401
|
+
"x-postmark-document": "account",
|
|
402
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
403
|
+
"responses": {
|
|
404
|
+
"200": {
|
|
405
|
+
"description": "Create a Sender Signature"
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"/senders/{signatureid}": {
|
|
411
|
+
"get": {
|
|
412
|
+
"operationId": "getSenderSignature",
|
|
413
|
+
"summary": "Get a Sender Signature",
|
|
414
|
+
"x-postmark-document": "account",
|
|
415
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
416
|
+
"responses": {
|
|
417
|
+
"200": {
|
|
418
|
+
"description": "Get a Sender Signature"
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"put": {
|
|
423
|
+
"operationId": "editSenderSignature",
|
|
424
|
+
"summary": "Update a Sender Signature",
|
|
425
|
+
"x-postmark-document": "account",
|
|
426
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
427
|
+
"responses": {
|
|
428
|
+
"200": {
|
|
429
|
+
"description": "Update a Sender Signature"
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"delete": {
|
|
434
|
+
"operationId": "deleteSenderSignature",
|
|
435
|
+
"summary": "Delete a Sender Signature",
|
|
436
|
+
"x-postmark-document": "account",
|
|
437
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
438
|
+
"responses": {
|
|
439
|
+
"200": {
|
|
440
|
+
"description": "Delete a Sender Signature"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"/senders/{signatureid}/requestnewdkim": {
|
|
446
|
+
"post": {
|
|
447
|
+
"operationId": "requestNewDKIMKeyForSenderSignature",
|
|
448
|
+
"summary": "Request a new DKIM Key",
|
|
449
|
+
"x-postmark-document": "account",
|
|
450
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
451
|
+
"responses": {
|
|
452
|
+
"200": {
|
|
453
|
+
"description": "Request a new DKIM Key"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
"/senders/{signatureid}/resend": {
|
|
459
|
+
"post": {
|
|
460
|
+
"operationId": "resendSenderSignatureConfirmationEmail",
|
|
461
|
+
"summary": "Resend Signature Confirmation Email",
|
|
462
|
+
"x-postmark-document": "account",
|
|
463
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
464
|
+
"responses": {
|
|
465
|
+
"200": {
|
|
466
|
+
"description": "Resend Signature Confirmation Email"
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"/senders/{signatureid}/verifyspf": {
|
|
472
|
+
"post": {
|
|
473
|
+
"operationId": "requestSPFVerificationForSenderSignature",
|
|
474
|
+
"summary": "Request DNS Verification for SPF",
|
|
475
|
+
"x-postmark-document": "account",
|
|
476
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
477
|
+
"responses": {
|
|
478
|
+
"200": {
|
|
479
|
+
"description": "Request DNS Verification for SPF"
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
"/server": {
|
|
485
|
+
"get": {
|
|
486
|
+
"operationId": "getCurrentServerConfiguration",
|
|
487
|
+
"summary": "Get Server Configuration",
|
|
488
|
+
"x-postmark-document": "server",
|
|
489
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
490
|
+
"responses": {
|
|
491
|
+
"200": {
|
|
492
|
+
"description": "Get Server Configuration"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
"put": {
|
|
497
|
+
"operationId": "editCurrentServerConfiguration",
|
|
498
|
+
"summary": "Edit Server Configuration",
|
|
499
|
+
"x-postmark-document": "server",
|
|
500
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
501
|
+
"responses": {
|
|
502
|
+
"200": {
|
|
503
|
+
"description": "Edit Server Configuration"
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
"/servers": {
|
|
509
|
+
"get": {
|
|
510
|
+
"operationId": "listServers",
|
|
511
|
+
"summary": "List servers",
|
|
512
|
+
"x-postmark-document": "account",
|
|
513
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
514
|
+
"responses": {
|
|
515
|
+
"200": {
|
|
516
|
+
"description": "List servers"
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
},
|
|
520
|
+
"post": {
|
|
521
|
+
"operationId": "createServer",
|
|
522
|
+
"summary": "Create a Server",
|
|
523
|
+
"x-postmark-document": "account",
|
|
524
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
525
|
+
"responses": {
|
|
526
|
+
"200": {
|
|
527
|
+
"description": "Create a Server"
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
},
|
|
532
|
+
"/servers/{serverid}": {
|
|
533
|
+
"get": {
|
|
534
|
+
"operationId": "getServerInformation",
|
|
535
|
+
"summary": "Get a Server",
|
|
536
|
+
"x-postmark-document": "account",
|
|
537
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
538
|
+
"responses": {
|
|
539
|
+
"200": {
|
|
540
|
+
"description": "Get a Server"
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"put": {
|
|
545
|
+
"operationId": "editServerInformation",
|
|
546
|
+
"summary": "Edit a Server",
|
|
547
|
+
"x-postmark-document": "account",
|
|
548
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
549
|
+
"responses": {
|
|
550
|
+
"200": {
|
|
551
|
+
"description": "Edit a Server"
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"delete": {
|
|
556
|
+
"operationId": "deleteServer",
|
|
557
|
+
"summary": "Delete a Server",
|
|
558
|
+
"x-postmark-document": "account",
|
|
559
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
560
|
+
"responses": {
|
|
561
|
+
"200": {
|
|
562
|
+
"description": "Delete a Server"
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
"/stats/outbound": {
|
|
568
|
+
"get": {
|
|
569
|
+
"operationId": "getOutboundOverviewStatistics",
|
|
570
|
+
"summary": "Get outbound overview",
|
|
571
|
+
"x-postmark-document": "server",
|
|
572
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
573
|
+
"responses": {
|
|
574
|
+
"200": {
|
|
575
|
+
"description": "Get outbound overview"
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
"/stats/outbound/bounces": {
|
|
581
|
+
"get": {
|
|
582
|
+
"operationId": "getBounceCounts",
|
|
583
|
+
"summary": "Get bounce counts",
|
|
584
|
+
"x-postmark-document": "server",
|
|
585
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
586
|
+
"responses": {
|
|
587
|
+
"200": {
|
|
588
|
+
"description": "Get bounce counts"
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
"/stats/outbound/clicks": {
|
|
594
|
+
"get": {
|
|
595
|
+
"operationId": "getOutboundClickCounts",
|
|
596
|
+
"summary": "Get click counts",
|
|
597
|
+
"x-postmark-document": "server",
|
|
598
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
599
|
+
"responses": {
|
|
600
|
+
"200": {
|
|
601
|
+
"description": "Get click counts"
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
"/stats/outbound/clicks/browserfamilies": {
|
|
607
|
+
"get": {
|
|
608
|
+
"operationId": "getOutboundClickCountsByBrowserFamily",
|
|
609
|
+
"summary": "Get browser usage by family",
|
|
610
|
+
"x-postmark-document": "server",
|
|
611
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
612
|
+
"responses": {
|
|
613
|
+
"200": {
|
|
614
|
+
"description": "Get browser usage by family"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
"/stats/outbound/clicks/location": {
|
|
620
|
+
"get": {
|
|
621
|
+
"operationId": "getOutboundClickCountsByLocation",
|
|
622
|
+
"summary": "Get clicks by body location",
|
|
623
|
+
"x-postmark-document": "server",
|
|
624
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
625
|
+
"responses": {
|
|
626
|
+
"200": {
|
|
627
|
+
"description": "Get clicks by body location"
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
"/stats/outbound/clicks/platforms": {
|
|
633
|
+
"get": {
|
|
634
|
+
"operationId": "getOutboundClickCountsByPlatform",
|
|
635
|
+
"summary": "Get browser plaform usage",
|
|
636
|
+
"x-postmark-document": "server",
|
|
637
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
638
|
+
"responses": {
|
|
639
|
+
"200": {
|
|
640
|
+
"description": "Get browser plaform usage"
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
},
|
|
645
|
+
"/stats/outbound/opens": {
|
|
646
|
+
"get": {
|
|
647
|
+
"operationId": "getOutboundOpenCounts",
|
|
648
|
+
"summary": "Get email open counts",
|
|
649
|
+
"x-postmark-document": "server",
|
|
650
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
651
|
+
"responses": {
|
|
652
|
+
"200": {
|
|
653
|
+
"description": "Get email open counts"
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"/stats/outbound/opens/emailclients": {
|
|
659
|
+
"get": {
|
|
660
|
+
"operationId": "getOutboundOpenCountsByEmailClient",
|
|
661
|
+
"summary": "Get email client usage",
|
|
662
|
+
"x-postmark-document": "server",
|
|
663
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
664
|
+
"responses": {
|
|
665
|
+
"200": {
|
|
666
|
+
"description": "Get email client usage"
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
"/stats/outbound/opens/platforms": {
|
|
672
|
+
"get": {
|
|
673
|
+
"operationId": "getOutboundOpenCountsByPlatform",
|
|
674
|
+
"summary": "Get email platform usage",
|
|
675
|
+
"x-postmark-document": "server",
|
|
676
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
677
|
+
"responses": {
|
|
678
|
+
"200": {
|
|
679
|
+
"description": "Get email platform usage"
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
"/stats/outbound/sends": {
|
|
685
|
+
"get": {
|
|
686
|
+
"operationId": "getSentCounts",
|
|
687
|
+
"summary": "Get sent counts",
|
|
688
|
+
"x-postmark-document": "server",
|
|
689
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
690
|
+
"responses": {
|
|
691
|
+
"200": {
|
|
692
|
+
"description": "Get sent counts"
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
},
|
|
697
|
+
"/stats/outbound/spam": {
|
|
698
|
+
"get": {
|
|
699
|
+
"operationId": "getSpamComplaints",
|
|
700
|
+
"summary": "Get spam complaints",
|
|
701
|
+
"x-postmark-document": "server",
|
|
702
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
703
|
+
"responses": {
|
|
704
|
+
"200": {
|
|
705
|
+
"description": "Get spam complaints"
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
"/stats/outbound/tracked": {
|
|
711
|
+
"get": {
|
|
712
|
+
"operationId": "getTrackedEmailCounts",
|
|
713
|
+
"summary": "Get tracked email counts",
|
|
714
|
+
"x-postmark-document": "server",
|
|
715
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
716
|
+
"responses": {
|
|
717
|
+
"200": {
|
|
718
|
+
"description": "Get tracked email counts"
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"/templates": {
|
|
724
|
+
"get": {
|
|
725
|
+
"operationId": "listTemplates",
|
|
726
|
+
"summary": "Get the Templates associated with this Server",
|
|
727
|
+
"x-postmark-document": "server",
|
|
728
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
729
|
+
"responses": {
|
|
730
|
+
"200": {
|
|
731
|
+
"description": "Get the Templates associated with this Server"
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
"post": {
|
|
736
|
+
"operationId": null,
|
|
737
|
+
"summary": "Create a Template",
|
|
738
|
+
"x-postmark-document": "server",
|
|
739
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
740
|
+
"responses": {
|
|
741
|
+
"200": {
|
|
742
|
+
"description": "Create a Template"
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
"/templates/push": {
|
|
748
|
+
"put": {
|
|
749
|
+
"operationId": "pushTemplates",
|
|
750
|
+
"summary": "Push templates from one server to another",
|
|
751
|
+
"x-postmark-document": "account",
|
|
752
|
+
"x-postmark-token": "X-Postmark-Account-Token",
|
|
753
|
+
"responses": {
|
|
754
|
+
"200": {
|
|
755
|
+
"description": "Push templates from one server to another"
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
"/templates/validate": {
|
|
761
|
+
"post": {
|
|
762
|
+
"operationId": "testTemplateContent",
|
|
763
|
+
"summary": "Test Template Content",
|
|
764
|
+
"x-postmark-document": "server",
|
|
765
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
766
|
+
"responses": {
|
|
767
|
+
"200": {
|
|
768
|
+
"description": "Test Template Content"
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
"/templates/{templateIdOrAlias}": {
|
|
774
|
+
"get": {
|
|
775
|
+
"operationId": "getSingleTemplate",
|
|
776
|
+
"summary": "Get a Template",
|
|
777
|
+
"x-postmark-document": "server",
|
|
778
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
779
|
+
"responses": {
|
|
780
|
+
"200": {
|
|
781
|
+
"description": "Get a Template"
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
},
|
|
785
|
+
"put": {
|
|
786
|
+
"operationId": "updateTemplate",
|
|
787
|
+
"summary": "Update a Template",
|
|
788
|
+
"x-postmark-document": "server",
|
|
789
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
790
|
+
"responses": {
|
|
791
|
+
"200": {
|
|
792
|
+
"description": "Update a Template"
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
"delete": {
|
|
797
|
+
"operationId": "deleteTemplate",
|
|
798
|
+
"summary": "Delete a Template",
|
|
799
|
+
"x-postmark-document": "server",
|
|
800
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
801
|
+
"responses": {
|
|
802
|
+
"200": {
|
|
803
|
+
"description": "Delete a Template"
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
"/triggers/inboundrules": {
|
|
809
|
+
"post": {
|
|
810
|
+
"operationId": "createInboundRule",
|
|
811
|
+
"summary": "Create an inbound rule trigger",
|
|
812
|
+
"x-postmark-document": "server",
|
|
813
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
814
|
+
"responses": {
|
|
815
|
+
"200": {
|
|
816
|
+
"description": "Create an inbound rule trigger"
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
},
|
|
820
|
+
"get": {
|
|
821
|
+
"operationId": "listInboundRules",
|
|
822
|
+
"summary": "List inbound rule triggers",
|
|
823
|
+
"x-postmark-document": "server",
|
|
824
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
825
|
+
"responses": {
|
|
826
|
+
"200": {
|
|
827
|
+
"description": "List inbound rule triggers"
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
"/triggers/inboundrules/{triggerid}": {
|
|
833
|
+
"delete": {
|
|
834
|
+
"operationId": "deleteInboundRule",
|
|
835
|
+
"summary": "Delete a single trigger",
|
|
836
|
+
"x-postmark-document": "server",
|
|
837
|
+
"x-postmark-token": "X-Postmark-Server-Token",
|
|
838
|
+
"responses": {
|
|
839
|
+
"200": {
|
|
840
|
+
"description": "Delete a single trigger"
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|