@apifreaks/openapi-specs 0.3.0 → 0.3.2

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.
Files changed (45) hide show
  1. package/README.md +75 -99
  2. package/dist/index.cjs +8702 -2973
  3. package/dist/index.d.cts +15 -8
  4. package/dist/index.d.ts +15 -8
  5. package/dist/index.js +8699 -2973
  6. package/dist/specs/email-validation/bulk-email-validation.yaml +59 -12
  7. package/dist/specs/email-validation/email-checker.yaml +52 -10
  8. package/dist/specs/pdf/{bulk-pdf-generator.yaml → pdf-generator-bulk.yaml} +2 -2
  9. package/dist/specs/pdf/pdf-generator.yaml +2 -2
  10. package/package.json +1 -1
  11. package/specs/README.md +259 -0
  12. package/specs/email-validation/bulk-email-validation.json +90 -13
  13. package/specs/email-validation/email-checker.json +67 -11
  14. package/specs/pdf/{bulk-pdf-generator.json → pdf-generator-bulk.json} +2 -2
  15. package/specs/pdf/pdf-generator.json +2 -2
  16. /package/dist/specs/{general → billing}/usage-credits.yaml +0 -0
  17. /package/dist/specs/{geodb → geography}/administrative-units-details.yaml +0 -0
  18. /package/dist/specs/{geodb → geography}/administrative-units-levels.yaml +0 -0
  19. /package/dist/specs/{geodb → geography}/administrative-units.yaml +0 -0
  20. /package/dist/specs/{geodb → geography}/cities.yaml +0 -0
  21. /package/dist/specs/{geodb → geography}/countries-details.yaml +0 -0
  22. /package/dist/specs/{geodb → geography}/countries.yaml +0 -0
  23. /package/dist/specs/{geodb → geography}/flags-supported.yaml +0 -0
  24. /package/dist/specs/{geodb → geography}/flags.yaml +0 -0
  25. /package/dist/specs/{geodb → geography}/regions.yaml +0 -0
  26. /package/dist/specs/{geodb → geography}/subregions.yaml +0 -0
  27. /package/dist/specs/pdf/{pdf-split-pages.yaml → split-pdf.yaml} +0 -0
  28. /package/dist/specs/{phone-validation → phone-number-validation}/bulk-phone-number-validation.yaml +0 -0
  29. /package/dist/specs/{phone-validation/phone-number-validation.yaml → phone-number-validation/phone-validation.yaml} +0 -0
  30. /package/dist/specs/{other → weather}/astronomy-data.yaml +0 -0
  31. /package/specs/{general → billing}/usage-credits.json +0 -0
  32. /package/specs/{geodb → geography}/administrative-units-details.json +0 -0
  33. /package/specs/{geodb → geography}/administrative-units-levels.json +0 -0
  34. /package/specs/{geodb → geography}/administrative-units.json +0 -0
  35. /package/specs/{geodb → geography}/cities.json +0 -0
  36. /package/specs/{geodb → geography}/countries-details.json +0 -0
  37. /package/specs/{geodb → geography}/countries.json +0 -0
  38. /package/specs/{geodb → geography}/flags-supported.json +0 -0
  39. /package/specs/{geodb → geography}/flags.json +0 -0
  40. /package/specs/{geodb → geography}/regions.json +0 -0
  41. /package/specs/{geodb → geography}/subregions.json +0 -0
  42. /package/specs/pdf/{pdf-split-pages.json → split-pdf.json} +0 -0
  43. /package/specs/{phone-validation → phone-number-validation}/bulk-phone-number-validation.json +0 -0
  44. /package/specs/{phone-validation/phone-number-validation.json → phone-number-validation/phone-validation.json} +0 -0
  45. /package/specs/{other → weather}/astronomy-data.json +0 -0
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "Bulk Email Validation API - Validate and Verify Emails in Bulk",
5
5
  "version": "1.0.0",
6
- "description": "Validate up to 100 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email, plus per-item error objects for failed validations. Maximum 100 email addresses per request.",
6
+ "description": "Validate up to 10 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email, plus per-item error objects for failed validations. Maximum 10 email addresses per request.",
7
7
  "contact": {
8
8
  "name": "APIFreaks Support",
9
9
  "url": "https://apifreaks.com/contact",
@@ -21,7 +21,7 @@
21
21
  "post": {
22
22
  "tags": ["Email Validation APIs"],
23
23
  "summary": "Validate multiple email addresses",
24
- "description": "Validates a bulk of email addresses and returns result for each. Maximum `100` email addresses per request.",
24
+ "description": "Validates a bulk of email addresses and returns result for each. Maximum `10` email addresses per request.",
25
25
  "parameters": [
26
26
  {
27
27
  "name": "format",
@@ -57,7 +57,7 @@
57
57
  "bulkEmailsValidated": {
58
58
  "summary": "Mix of a valid and a syntactically invalid email",
59
59
  "value": {
60
- "emailValidationResponses": [
60
+ "emailResponse": [
61
61
  {
62
62
  "success": true,
63
63
  "email": "abc.def@gmail.com",
@@ -76,7 +76,7 @@
76
76
  "fullMailBox": false
77
77
  },
78
78
  "dns": {
79
- "mxRecords": [
79
+ "mxRecord": [
80
80
  "gmail-smtp-in.l.google.com.",
81
81
  "alt1.gmail-smtp-in.l.google.com.",
82
82
  "alt2.gmail-smtp-in.l.google.com.",
@@ -104,6 +104,12 @@
104
104
  "headers": {
105
105
  "X-AF-Credits-Cost": {
106
106
  "$ref": "#/components/headers/X-AF-Credits-Cost"
107
+ },
108
+ "X-Concurrent-Threads": {
109
+ "$ref": "#/components/headers/X-Concurrent-Threads"
110
+ },
111
+ "X-Concurrent-Threads-Active": {
112
+ "$ref": "#/components/headers/X-Concurrent-Threads-Active"
107
113
  }
108
114
  }
109
115
  },
@@ -134,6 +140,58 @@
134
140
  }
135
141
  }
136
142
  },
143
+ "404": {
144
+ "description": "Not Found – The requested resource could not be found",
145
+ "content": {
146
+ "application/json": {
147
+ "schema": {
148
+ "$ref": "#/components/schemas/ErrorResponse"
149
+ },
150
+ "examples": {
151
+ "Resource Not Found": {
152
+ "value": {
153
+ "timestamp": "2026-09-02T11:57:55.592Z",
154
+ "path": "/v1.0/email-validation/bulkx",
155
+ "status": 404,
156
+ "error": "Resource Not Found",
157
+ "message": "The requested resource could not be found. Please verify the URL and try again."
158
+ }
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "headers": {
164
+ "X-AF-Credits-Cost": {
165
+ "$ref": "#/components/headers/X-AF-Credits-Cost"
166
+ }
167
+ }
168
+ },
169
+ "413": {
170
+ "description": "Payload Too Large – emailData exceeds the maximum of 10 entries per request",
171
+ "content": {
172
+ "application/json": {
173
+ "schema": {
174
+ "$ref": "#/components/schemas/ErrorResponse"
175
+ },
176
+ "examples": {
177
+ "Payload Too Large": {
178
+ "value": {
179
+ "timestamp": "2026-09-02T11:57:34.223Z",
180
+ "path": "/v2/email-validation/bulk",
181
+ "status": 413,
182
+ "error": "Payload too large Exception",
183
+ "message": "Maximum request body size limit exceeded"
184
+ }
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "headers": {
190
+ "X-AF-Credits-Cost": {
191
+ "$ref": "#/components/headers/X-AF-Credits-Cost"
192
+ }
193
+ }
194
+ },
137
195
  "408": {
138
196
  "description": "Request Timeout",
139
197
  "content": {
@@ -210,9 +268,9 @@
210
268
  "BulkEmailValidationResponse": {
211
269
  "type": "object",
212
270
  "description": "Wrapper containing the per-email results array.",
213
- "required": ["emailValidationResponses"],
271
+ "required": ["emailResponse"],
214
272
  "properties": {
215
- "emailValidationResponses": {
273
+ "emailResponse": {
216
274
  "type": "array",
217
275
  "description": "Array of per-email results, one entry per requested email, in the same order as the request. Invalid emails are reflected via validEmail/validSyntax, not a separate error shape.",
218
276
  "items": {
@@ -244,8 +302,15 @@
244
302
  },
245
303
  "validEmail": {
246
304
  "type": "string",
247
- "enum": ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky"],
248
- "description": "Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. unknown/risky are documented possibilities not observed during testing."
305
+ "enum": [
306
+ "valid",
307
+ "invalid",
308
+ "INVALID_EMAIL",
309
+ "unknown",
310
+ "risky",
311
+ "app_server_blocked"
312
+ ],
313
+ "description": "Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. risky is a documented possibility not observed during testing. app_server_blocked is returned when the recipient mail server blocked the live verification attempt (reason explains that retrying later may succeed)."
249
314
  },
250
315
  "validSyntax": {
251
316
  "type": "boolean",
@@ -319,16 +384,16 @@
319
384
  },
320
385
  "DnsObject": {
321
386
  "type": "object",
322
- "required": ["mxRecords"],
387
+ "required": ["mxRecord"],
323
388
  "properties": {
324
- "mxRecords": {
389
+ "mxRecord": {
325
390
  "type": "array",
326
391
  "items": {
327
392
  "type": "string"
328
393
  },
329
394
  "description": "Collection of MX (Mail Exchange) hostname records from DNS queries."
330
395
  },
331
- "aRecords": {
396
+ "aRecord": {
332
397
  "type": "array",
333
398
  "items": {
334
399
  "type": "string"
@@ -484,8 +549,8 @@
484
549
  "properties": {
485
550
  "emailData": {
486
551
  "type": "array",
487
- "description": "Array of email objects to validate. Maximum 100 per request.",
488
- "maxItems": 100,
552
+ "description": "Array of email objects to validate. Maximum 10 per request.",
553
+ "maxItems": 10,
489
554
  "items": {
490
555
  "$ref": "#/components/schemas/BulkEmailRequestItem"
491
556
  }
@@ -548,6 +613,18 @@
548
613
  "schema": {
549
614
  "type": "integer"
550
615
  }
616
+ },
617
+ "X-Concurrent-Threads": {
618
+ "description": "Specifies the maximum number of concurrent requests allowed.",
619
+ "schema": {
620
+ "type": "integer"
621
+ }
622
+ },
623
+ "X-Concurrent-Threads-Active": {
624
+ "description": "Indicates the number of active concurrent requests being processed.",
625
+ "schema": {
626
+ "type": "integer"
627
+ }
551
628
  }
552
629
  }
553
630
  },
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "Email Checker API - Real-Time Validation, Deliverability & Risk Signals",
5
5
  "version": "1.0.0",
6
- "description": "Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/invalid/unknown/risky status.",
6
+ "description": "Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/invalid/unknown/risky/app_server_blocked status.",
7
7
  "contact": {
8
8
  "name": "APIFreaks Support",
9
9
  "url": "https://apifreaks.com/contact",
@@ -73,7 +73,7 @@
73
73
  "fullMailBox": false
74
74
  },
75
75
  "dns": {
76
- "mxRecords": [
76
+ "mxRecord": [
77
77
  "gmail-smtp-in.l.google.com.",
78
78
  "alt1.gmail-smtp-in.l.google.com.",
79
79
  "alt2.gmail-smtp-in.l.google.com.",
@@ -137,7 +137,7 @@
137
137
  "fullMailBox": false
138
138
  },
139
139
  "dns": {
140
- "mxRecords": [
140
+ "mxRecord": [
141
141
  "gmail-smtp-in.l.google.com.",
142
142
  "alt1.gmail-smtp-in.l.google.com.",
143
143
  "alt2.gmail-smtp-in.l.google.com.",
@@ -178,6 +178,30 @@
178
178
  }
179
179
  }
180
180
  }
181
+ },
182
+ "appServerBlocked": {
183
+ "summary": "Valid syntax, but the recipient mail server blocked the verification attempt",
184
+ "value": {
185
+ "success": true,
186
+ "email": "randomuser98765zzz@gmx.com",
187
+ "validEmail": "app_server_blocked",
188
+ "validSyntax": true,
189
+ "reason": "We are unable to determine the validity of email at the moment. Please try later.",
190
+ "domain": {
191
+ "name": "gmx.com",
192
+ "disposable": false,
193
+ "spam": false,
194
+ "free": true,
195
+ "validDomain": true,
196
+ "catchAll": false
197
+ },
198
+ "account": {
199
+ "role": false
200
+ },
201
+ "dns": {
202
+ "mxRecord": ["mx00.gmx.net."]
203
+ }
204
+ }
181
205
  }
182
206
  }
183
207
  }
@@ -205,10 +229,10 @@
205
229
  "missingEmail": {
206
230
  "summary": "email field missing from request body",
207
231
  "value": {
208
- "timestamp": "2026-07-27T12:51:23.593986185Z",
209
- "path": "/v2.0/email-validation/single",
232
+ "timestamp": "2026-09-02T11:56:23.462Z",
233
+ "path": "/v2/email-validation/single",
210
234
  "status": 400,
211
- "error": "External API Error",
235
+ "error": "Missing or Invalid Parameters",
212
236
  "message": "Please pass valid value for 'email' in body."
213
237
  }
214
238
  }
@@ -259,6 +283,38 @@
259
283
  }
260
284
  }
261
285
  },
286
+ "404": {
287
+ "description": "Not Found – The requested resource could not be found",
288
+ "content": {
289
+ "application/json": {
290
+ "schema": {
291
+ "$ref": "#/components/schemas/ErrorResponse"
292
+ },
293
+ "examples": {
294
+ "Resource Not Found": {
295
+ "value": {
296
+ "timestamp": "2026-09-02T11:56:23.937Z",
297
+ "path": "/v1.0/email-validation/singlex",
298
+ "status": 404,
299
+ "error": "Resource Not Found",
300
+ "message": "The requested resource could not be found. Please verify the URL and try again."
301
+ }
302
+ }
303
+ }
304
+ }
305
+ },
306
+ "headers": {
307
+ "X-AF-Credits-Cost": {
308
+ "$ref": "#/components/headers/X-AF-Credits-Cost"
309
+ },
310
+ "X-Concurrent-Threads": {
311
+ "$ref": "#/components/headers/X-Concurrent-Threads"
312
+ },
313
+ "X-Concurrent-Threads-Active": {
314
+ "$ref": "#/components/headers/X-Concurrent-Threads-Active"
315
+ }
316
+ }
317
+ },
262
318
  "429": {
263
319
  "description": "Rate Limit Exceeded",
264
320
  "content": {
@@ -335,8 +391,8 @@
335
391
  },
336
392
  "validEmail": {
337
393
  "type": "string",
338
- "enum": ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky"],
339
- "description": "Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. unknown/risky are documented possibilities not observed during testing."
394
+ "enum": ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
395
+ "description": "Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. risky is a documented possibility not observed during testing. app_server_blocked is returned when the recipient mail server blocked the live verification attempt (reason explains that retrying later may succeed)."
340
396
  },
341
397
  "validSyntax": {
342
398
  "type": "boolean",
@@ -410,16 +466,16 @@
410
466
  },
411
467
  "DnsObject": {
412
468
  "type": "object",
413
- "required": ["mxRecords"],
469
+ "required": ["mxRecord"],
414
470
  "properties": {
415
- "mxRecords": {
471
+ "mxRecord": {
416
472
  "type": "array",
417
473
  "items": {
418
474
  "type": "string"
419
475
  },
420
476
  "description": "Collection of MX (Mail Exchange) hostname records from DNS queries."
421
477
  },
422
- "aRecords": {
478
+ "aRecord": {
423
479
  "type": "array",
424
480
  "items": {
425
481
  "type": "string"
@@ -246,8 +246,8 @@
246
246
  "ApiKeyAuthHeader": {
247
247
  "type": "apiKey",
248
248
  "in": "header",
249
- "name": "X-apikey",
250
- "description": "Pass your API key via the X-apikey request header."
249
+ "name": "X-apiKey",
250
+ "description": "Pass your API key via the X-apiKey request header."
251
251
  },
252
252
  "ApiKeyAuthQuery": {
253
253
  "type": "apiKey",
@@ -412,8 +412,8 @@
412
412
  "ApiKeyAuthHeader": {
413
413
  "type": "apiKey",
414
414
  "in": "header",
415
- "name": "X-apikey",
416
- "description": "Pass your API key via the X-apikey request header."
415
+ "name": "X-apiKey",
416
+ "description": "Pass your API key via the X-apiKey request header."
417
417
  },
418
418
  "ApiKeyAuthQuery": {
419
419
  "type": "apiKey",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes