@apifreaks/openapi-specs 0.3.0 → 0.3.1
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/README.md +6 -7
- package/dist/index.cjs +2542 -2411
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +2542 -2411
- package/dist/specs/email-validation/bulk-email-validation.yaml +59 -12
- package/dist/specs/email-validation/email-checker.yaml +52 -10
- package/package.json +1 -1
- package/specs/email-validation/bulk-email-validation.json +90 -13
- package/specs/email-validation/email-checker.json +67 -11
- /package/dist/specs/{general → billing}/usage-credits.yaml +0 -0
- /package/dist/specs/{geodb → geography}/administrative-units-details.yaml +0 -0
- /package/dist/specs/{geodb → geography}/administrative-units-levels.yaml +0 -0
- /package/dist/specs/{geodb → geography}/administrative-units.yaml +0 -0
- /package/dist/specs/{geodb → geography}/cities.yaml +0 -0
- /package/dist/specs/{geodb → geography}/countries-details.yaml +0 -0
- /package/dist/specs/{geodb → geography}/countries.yaml +0 -0
- /package/dist/specs/{geodb → geography}/flags-supported.yaml +0 -0
- /package/dist/specs/{geodb → geography}/flags.yaml +0 -0
- /package/dist/specs/{geodb → geography}/regions.yaml +0 -0
- /package/dist/specs/{geodb → geography}/subregions.yaml +0 -0
- /package/dist/specs/{other → weather}/astronomy-data.yaml +0 -0
- /package/specs/{general → billing}/usage-credits.json +0 -0
- /package/specs/{geodb → geography}/administrative-units-details.json +0 -0
- /package/specs/{geodb → geography}/administrative-units-levels.json +0 -0
- /package/specs/{geodb → geography}/administrative-units.json +0 -0
- /package/specs/{geodb → geography}/cities.json +0 -0
- /package/specs/{geodb → geography}/countries-details.json +0 -0
- /package/specs/{geodb → geography}/countries.json +0 -0
- /package/specs/{geodb → geography}/flags-supported.json +0 -0
- /package/specs/{geodb → geography}/flags.json +0 -0
- /package/specs/{geodb → geography}/regions.json +0 -0
- /package/specs/{geodb → geography}/subregions.json +0 -0
- /package/specs/{other → weather}/astronomy-data.json +0 -0
|
@@ -2,7 +2,7 @@ openapi: 3.1.1
|
|
|
2
2
|
info:
|
|
3
3
|
title: Bulk Email Validation API - Validate and Verify Emails in Bulk
|
|
4
4
|
version: 1.0.0
|
|
5
|
-
description: Validate up to
|
|
5
|
+
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.
|
|
6
6
|
contact:
|
|
7
7
|
name: APIFreaks Support
|
|
8
8
|
url: https://apifreaks.com/contact
|
|
@@ -16,7 +16,7 @@ paths:
|
|
|
16
16
|
tags:
|
|
17
17
|
- Email Validation APIs
|
|
18
18
|
summary: Validate multiple email addresses
|
|
19
|
-
description: Validates a bulk of email addresses and returns result for each. Maximum `
|
|
19
|
+
description: Validates a bulk of email addresses and returns result for each. Maximum `10` email addresses per request.
|
|
20
20
|
parameters:
|
|
21
21
|
- name: format
|
|
22
22
|
in: query
|
|
@@ -45,7 +45,7 @@ paths:
|
|
|
45
45
|
bulkEmailsValidated:
|
|
46
46
|
summary: Mix of a valid and a syntactically invalid email
|
|
47
47
|
value:
|
|
48
|
-
|
|
48
|
+
emailResponse:
|
|
49
49
|
- success: true
|
|
50
50
|
email: abc.def@gmail.com
|
|
51
51
|
validEmail: valid
|
|
@@ -61,7 +61,7 @@ paths:
|
|
|
61
61
|
role: false
|
|
62
62
|
fullMailBox: false
|
|
63
63
|
dns:
|
|
64
|
-
|
|
64
|
+
mxRecord:
|
|
65
65
|
- gmail-smtp-in.l.google.com.
|
|
66
66
|
- alt1.gmail-smtp-in.l.google.com.
|
|
67
67
|
- alt2.gmail-smtp-in.l.google.com.
|
|
@@ -77,6 +77,10 @@ paths:
|
|
|
77
77
|
headers:
|
|
78
78
|
X-AF-Credits-Cost:
|
|
79
79
|
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
80
|
+
X-Concurrent-Threads:
|
|
81
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
82
|
+
X-Concurrent-Threads-Active:
|
|
83
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
80
84
|
'400':
|
|
81
85
|
description: Bad Request – Invalid request body
|
|
82
86
|
content:
|
|
@@ -95,6 +99,23 @@ paths:
|
|
|
95
99
|
headers:
|
|
96
100
|
X-AF-Credits-Cost:
|
|
97
101
|
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
102
|
+
'404':
|
|
103
|
+
description: Not Found – The requested resource could not be found
|
|
104
|
+
content:
|
|
105
|
+
application/json:
|
|
106
|
+
schema:
|
|
107
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
108
|
+
examples:
|
|
109
|
+
Resource Not Found:
|
|
110
|
+
value:
|
|
111
|
+
timestamp: '2026-09-02T11:57:55.592Z'
|
|
112
|
+
path: /v1.0/email-validation/bulkx
|
|
113
|
+
status: 404
|
|
114
|
+
error: Resource Not Found
|
|
115
|
+
message: The requested resource could not be found. Please verify the URL and try again.
|
|
116
|
+
headers:
|
|
117
|
+
X-AF-Credits-Cost:
|
|
118
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
98
119
|
'408':
|
|
99
120
|
description: Request Timeout
|
|
100
121
|
content:
|
|
@@ -112,6 +133,23 @@ paths:
|
|
|
112
133
|
headers:
|
|
113
134
|
X-AF-Credits-Cost:
|
|
114
135
|
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
136
|
+
'413':
|
|
137
|
+
description: Payload Too Large – emailData exceeds the maximum of 10 entries per request
|
|
138
|
+
content:
|
|
139
|
+
application/json:
|
|
140
|
+
schema:
|
|
141
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
142
|
+
examples:
|
|
143
|
+
Payload Too Large:
|
|
144
|
+
value:
|
|
145
|
+
timestamp: '2026-09-02T11:57:34.223Z'
|
|
146
|
+
path: /v2/email-validation/bulk
|
|
147
|
+
status: 413
|
|
148
|
+
error: Payload too large Exception
|
|
149
|
+
message: Maximum request body size limit exceeded
|
|
150
|
+
headers:
|
|
151
|
+
X-AF-Credits-Cost:
|
|
152
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
115
153
|
'429':
|
|
116
154
|
description: Rate Limit Exceeded
|
|
117
155
|
content:
|
|
@@ -147,9 +185,9 @@ components:
|
|
|
147
185
|
type: object
|
|
148
186
|
description: Wrapper containing the per-email results array.
|
|
149
187
|
required:
|
|
150
|
-
-
|
|
188
|
+
- emailResponse
|
|
151
189
|
properties:
|
|
152
|
-
|
|
190
|
+
emailResponse:
|
|
153
191
|
type: array
|
|
154
192
|
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.
|
|
155
193
|
items:
|
|
@@ -184,7 +222,8 @@ components:
|
|
|
184
222
|
- INVALID_EMAIL
|
|
185
223
|
- unknown
|
|
186
224
|
- risky
|
|
187
|
-
|
|
225
|
+
- app_server_blocked
|
|
226
|
+
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).'
|
|
188
227
|
validSyntax:
|
|
189
228
|
type: boolean
|
|
190
229
|
description: Validates email address format compliance with RFC 5322 standards.
|
|
@@ -241,14 +280,14 @@ components:
|
|
|
241
280
|
DnsObject:
|
|
242
281
|
type: object
|
|
243
282
|
required:
|
|
244
|
-
-
|
|
283
|
+
- mxRecord
|
|
245
284
|
properties:
|
|
246
|
-
|
|
285
|
+
mxRecord:
|
|
247
286
|
type: array
|
|
248
287
|
items:
|
|
249
288
|
type: string
|
|
250
289
|
description: Collection of MX (Mail Exchange) hostname records from DNS queries.
|
|
251
|
-
|
|
290
|
+
aRecord:
|
|
252
291
|
type: array
|
|
253
292
|
items:
|
|
254
293
|
type: string
|
|
@@ -367,8 +406,8 @@ components:
|
|
|
367
406
|
properties:
|
|
368
407
|
emailData:
|
|
369
408
|
type: array
|
|
370
|
-
description: Array of email objects to validate. Maximum
|
|
371
|
-
maxItems:
|
|
409
|
+
description: Array of email objects to validate. Maximum 10 per request.
|
|
410
|
+
maxItems: 10
|
|
372
411
|
items:
|
|
373
412
|
$ref: '#/components/schemas/BulkEmailRequestItem'
|
|
374
413
|
BulkEmailRequestItem:
|
|
@@ -415,6 +454,14 @@ components:
|
|
|
415
454
|
description: Specifies the number of credits consumed by the current request.
|
|
416
455
|
schema:
|
|
417
456
|
type: integer
|
|
457
|
+
X-Concurrent-Threads:
|
|
458
|
+
description: Specifies the maximum number of concurrent requests allowed.
|
|
459
|
+
schema:
|
|
460
|
+
type: integer
|
|
461
|
+
X-Concurrent-Threads-Active:
|
|
462
|
+
description: Indicates the number of active concurrent requests being processed.
|
|
463
|
+
schema:
|
|
464
|
+
type: integer
|
|
418
465
|
security:
|
|
419
466
|
- ApiKeyAuthHeader: []
|
|
420
467
|
- ApiKeyAuthQuery: []
|
|
@@ -2,7 +2,7 @@ openapi: 3.1.1
|
|
|
2
2
|
info:
|
|
3
3
|
title: Email Checker API - Real-Time Validation, Deliverability & Risk Signals
|
|
4
4
|
version: 1.0.0
|
|
5
|
-
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.
|
|
5
|
+
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.
|
|
6
6
|
contact:
|
|
7
7
|
name: APIFreaks Support
|
|
8
8
|
url: https://apifreaks.com/contact
|
|
@@ -59,7 +59,7 @@ paths:
|
|
|
59
59
|
role: false
|
|
60
60
|
fullMailBox: false
|
|
61
61
|
dns:
|
|
62
|
-
|
|
62
|
+
mxRecord:
|
|
63
63
|
- gmail-smtp-in.l.google.com.
|
|
64
64
|
- alt1.gmail-smtp-in.l.google.com.
|
|
65
65
|
- alt2.gmail-smtp-in.l.google.com.
|
|
@@ -110,7 +110,7 @@ paths:
|
|
|
110
110
|
role: false
|
|
111
111
|
fullMailBox: false
|
|
112
112
|
dns:
|
|
113
|
-
|
|
113
|
+
mxRecord:
|
|
114
114
|
- gmail-smtp-in.l.google.com.
|
|
115
115
|
- alt1.gmail-smtp-in.l.google.com.
|
|
116
116
|
- alt2.gmail-smtp-in.l.google.com.
|
|
@@ -145,6 +145,26 @@ paths:
|
|
|
145
145
|
is_bot: false
|
|
146
146
|
is_cloud_provider: true
|
|
147
147
|
cloud_provider: Google LLC
|
|
148
|
+
appServerBlocked:
|
|
149
|
+
summary: Valid syntax, but the recipient mail server blocked the verification attempt
|
|
150
|
+
value:
|
|
151
|
+
success: true
|
|
152
|
+
email: randomuser98765zzz@gmx.com
|
|
153
|
+
validEmail: app_server_blocked
|
|
154
|
+
validSyntax: true
|
|
155
|
+
reason: We are unable to determine the validity of email at the moment. Please try later.
|
|
156
|
+
domain:
|
|
157
|
+
name: gmx.com
|
|
158
|
+
disposable: false
|
|
159
|
+
spam: false
|
|
160
|
+
free: true
|
|
161
|
+
validDomain: true
|
|
162
|
+
catchAll: false
|
|
163
|
+
account:
|
|
164
|
+
role: false
|
|
165
|
+
dns:
|
|
166
|
+
mxRecord:
|
|
167
|
+
- mx00.gmx.net.
|
|
148
168
|
headers:
|
|
149
169
|
X-AF-Credits-Cost:
|
|
150
170
|
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
@@ -162,10 +182,10 @@ paths:
|
|
|
162
182
|
missingEmail:
|
|
163
183
|
summary: email field missing from request body
|
|
164
184
|
value:
|
|
165
|
-
timestamp: '2026-
|
|
166
|
-
path: /v2
|
|
185
|
+
timestamp: '2026-09-02T11:56:23.462Z'
|
|
186
|
+
path: /v2/email-validation/single
|
|
167
187
|
status: 400
|
|
168
|
-
error:
|
|
188
|
+
error: Missing or Invalid Parameters
|
|
169
189
|
message: Please pass valid value for 'email' in body.
|
|
170
190
|
headers:
|
|
171
191
|
X-AF-Credits-Cost:
|
|
@@ -174,6 +194,27 @@ paths:
|
|
|
174
194
|
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
175
195
|
X-Concurrent-Threads-Active:
|
|
176
196
|
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
197
|
+
'404':
|
|
198
|
+
description: Not Found – The requested resource could not be found
|
|
199
|
+
content:
|
|
200
|
+
application/json:
|
|
201
|
+
schema:
|
|
202
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
203
|
+
examples:
|
|
204
|
+
Resource Not Found:
|
|
205
|
+
value:
|
|
206
|
+
timestamp: '2026-09-02T11:56:23.937Z'
|
|
207
|
+
path: /v1.0/email-validation/singlex
|
|
208
|
+
status: 404
|
|
209
|
+
error: Resource Not Found
|
|
210
|
+
message: The requested resource could not be found. Please verify the URL and try again.
|
|
211
|
+
headers:
|
|
212
|
+
X-AF-Credits-Cost:
|
|
213
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
214
|
+
X-Concurrent-Threads:
|
|
215
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
216
|
+
X-Concurrent-Threads-Active:
|
|
217
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
177
218
|
'408':
|
|
178
219
|
description: Request Timeout
|
|
179
220
|
content:
|
|
@@ -260,7 +301,8 @@ components:
|
|
|
260
301
|
- INVALID_EMAIL
|
|
261
302
|
- unknown
|
|
262
303
|
- risky
|
|
263
|
-
|
|
304
|
+
- app_server_blocked
|
|
305
|
+
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).'
|
|
264
306
|
validSyntax:
|
|
265
307
|
type: boolean
|
|
266
308
|
description: Validates email address format compliance with RFC 5322 standards.
|
|
@@ -317,14 +359,14 @@ components:
|
|
|
317
359
|
DnsObject:
|
|
318
360
|
type: object
|
|
319
361
|
required:
|
|
320
|
-
-
|
|
362
|
+
- mxRecord
|
|
321
363
|
properties:
|
|
322
|
-
|
|
364
|
+
mxRecord:
|
|
323
365
|
type: array
|
|
324
366
|
items:
|
|
325
367
|
type: string
|
|
326
368
|
description: Collection of MX (Mail Exchange) hostname records from DNS queries.
|
|
327
|
-
|
|
369
|
+
aRecord:
|
|
328
370
|
type: array
|
|
329
371
|
items:
|
|
330
372
|
type: string
|
package/package.json
CHANGED
|
@@ -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
|
|
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 `
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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": ["
|
|
271
|
+
"required": ["emailResponse"],
|
|
214
272
|
"properties": {
|
|
215
|
-
"
|
|
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": [
|
|
248
|
-
|
|
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": ["
|
|
387
|
+
"required": ["mxRecord"],
|
|
323
388
|
"properties": {
|
|
324
|
-
"
|
|
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
|
-
"
|
|
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
|
|
488
|
-
"maxItems":
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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-
|
|
209
|
-
"path": "/v2
|
|
232
|
+
"timestamp": "2026-09-02T11:56:23.462Z",
|
|
233
|
+
"path": "/v2/email-validation/single",
|
|
210
234
|
"status": 400,
|
|
211
|
-
"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.
|
|
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": ["
|
|
469
|
+
"required": ["mxRecord"],
|
|
414
470
|
"properties": {
|
|
415
|
-
"
|
|
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
|
-
"
|
|
478
|
+
"aRecord": {
|
|
423
479
|
"type": "array",
|
|
424
480
|
"items": {
|
|
425
481
|
"type": "string"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|