@apifreaks/openapi-specs 0.4.0 → 0.4.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/dist/index.cjs +765 -22
- package/dist/index.js +765 -22
- package/dist/specs/email-validation/bulk-email-validation.yaml +64 -10
- package/dist/specs/email-validation/email-checker.yaml +74 -11
- package/package.json +1 -1
- package/specs/email-validation/bulk-email-validation.json +78 -9
- package/specs/email-validation/email-checker.json +88 -11
|
@@ -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 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.
|
|
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 (valid/accept_all/invalid/unknown/risky/app_server_blocked), 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
|
|
@@ -43,7 +43,7 @@ paths:
|
|
|
43
43
|
$ref: '#/components/schemas/BulkEmailValidationResponse'
|
|
44
44
|
examples:
|
|
45
45
|
bulkEmailsValidated:
|
|
46
|
-
summary: Mix of
|
|
46
|
+
summary: Mix of valid, syntactically invalid, accept_all, null-MX invalid, and unknown (no-MX probe) results
|
|
47
47
|
value:
|
|
48
48
|
emailResponse:
|
|
49
49
|
- success: true
|
|
@@ -74,6 +74,60 @@ paths:
|
|
|
74
74
|
domain:
|
|
75
75
|
name: not-an-email
|
|
76
76
|
validDomain: false
|
|
77
|
+
- success: true
|
|
78
|
+
email: random12345@yahoo.com
|
|
79
|
+
validEmail: accept_all
|
|
80
|
+
validSyntax: true
|
|
81
|
+
reason: domain accepts all addresses.
|
|
82
|
+
domain:
|
|
83
|
+
name: yahoo.com
|
|
84
|
+
disposable: false
|
|
85
|
+
spam: false
|
|
86
|
+
free: true
|
|
87
|
+
validDomain: true
|
|
88
|
+
catchAll: true
|
|
89
|
+
account:
|
|
90
|
+
role: false
|
|
91
|
+
fullMailBox: false
|
|
92
|
+
dns:
|
|
93
|
+
mxRecord:
|
|
94
|
+
- mta5.am0.yahoodns.net.
|
|
95
|
+
- mta6.am0.yahoodns.net.
|
|
96
|
+
- mta7.am0.yahoodns.net.
|
|
97
|
+
- success: true
|
|
98
|
+
email: test@example.com
|
|
99
|
+
validEmail: invalid
|
|
100
|
+
validSyntax: true
|
|
101
|
+
reason: domain does not accept mail.
|
|
102
|
+
domain:
|
|
103
|
+
name: example.com
|
|
104
|
+
disposable: true
|
|
105
|
+
spam: false
|
|
106
|
+
free: false
|
|
107
|
+
validDomain: true
|
|
108
|
+
catchAll: false
|
|
109
|
+
account:
|
|
110
|
+
role: false
|
|
111
|
+
dns:
|
|
112
|
+
mxRecord:
|
|
113
|
+
- .
|
|
114
|
+
- success: true
|
|
115
|
+
email: test@neverssl.com
|
|
116
|
+
validEmail: unknown
|
|
117
|
+
validSyntax: true
|
|
118
|
+
reason: We are unable to determine if email is valid or invalid.
|
|
119
|
+
domain:
|
|
120
|
+
name: neverssl.com
|
|
121
|
+
disposable: false
|
|
122
|
+
spam: false
|
|
123
|
+
free: false
|
|
124
|
+
validDomain: true
|
|
125
|
+
catchAll: false
|
|
126
|
+
account:
|
|
127
|
+
role: false
|
|
128
|
+
dns:
|
|
129
|
+
aRecord:
|
|
130
|
+
- 34.223.124.45
|
|
77
131
|
headers:
|
|
78
132
|
X-AF-Credits-Cost:
|
|
79
133
|
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
@@ -213,17 +267,18 @@ components:
|
|
|
213
267
|
description: Optional identifier or label provided in the request for record tracking.
|
|
214
268
|
reason:
|
|
215
269
|
type: string
|
|
216
|
-
description: Detailed explanation returned when validEmail is not valid.
|
|
270
|
+
description: Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.
|
|
217
271
|
validEmail:
|
|
218
272
|
type: string
|
|
219
273
|
enum:
|
|
220
274
|
- valid
|
|
275
|
+
- accept_all
|
|
221
276
|
- invalid
|
|
222
277
|
- INVALID_EMAIL
|
|
223
278
|
- unknown
|
|
224
279
|
- risky
|
|
225
280
|
- app_server_blocked
|
|
226
|
-
description: 'Comprehensive deliverability assessment.
|
|
281
|
+
description: 'Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed — see domain.catchAll, reason ''domain accepts all addresses.''. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid — this is a known API bug, handle it defensively as equivalent to invalid.'
|
|
227
282
|
validSyntax:
|
|
228
283
|
type: boolean
|
|
229
284
|
description: Validates email address format compliance with RFC 5322 standards.
|
|
@@ -263,7 +318,7 @@ components:
|
|
|
263
318
|
description: Classification indicating free or consumer-grade email service providers.
|
|
264
319
|
catchAll:
|
|
265
320
|
type: boolean
|
|
266
|
-
description: Detection flag for domains configured to accept mail for any recipient address.
|
|
321
|
+
description: Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.
|
|
267
322
|
description: Domain validation details for the email address.
|
|
268
323
|
AccountObject:
|
|
269
324
|
type: object
|
|
@@ -279,20 +334,19 @@ components:
|
|
|
279
334
|
description: Account-level validation details.
|
|
280
335
|
DnsObject:
|
|
281
336
|
type: object
|
|
282
|
-
required:
|
|
283
|
-
- mxRecord
|
|
337
|
+
required: []
|
|
284
338
|
properties:
|
|
285
339
|
mxRecord:
|
|
286
340
|
type: array
|
|
287
341
|
items:
|
|
288
342
|
type: string
|
|
289
|
-
description:
|
|
343
|
+
description: Every MX hostname at the domain's lowest preference (not just one). ["."] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind — check aRecord in that case.
|
|
290
344
|
aRecord:
|
|
291
345
|
type: array
|
|
292
346
|
items:
|
|
293
347
|
type: string
|
|
294
|
-
description: Collection of A (Address) records for the domain.
|
|
295
|
-
description: DNS records for the email domain.
|
|
348
|
+
description: Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host.
|
|
349
|
+
description: DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.
|
|
296
350
|
AddressObject:
|
|
297
351
|
type: object
|
|
298
352
|
properties:
|
|
@@ -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/app_server_blocked 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/accept_all/invalid/unknown/risky/app_server_blocked status.
|
|
6
6
|
contact:
|
|
7
7
|
name: APIFreaks Support
|
|
8
8
|
url: https://apifreaks.com/contact
|
|
@@ -75,8 +75,8 @@ paths:
|
|
|
75
75
|
domain:
|
|
76
76
|
name: not-an-email
|
|
77
77
|
validDomain: false
|
|
78
|
-
|
|
79
|
-
summary: Valid syntax, domain
|
|
78
|
+
nonexistentDomain:
|
|
79
|
+
summary: Valid syntax, domain does not exist (NXDOMAIN)
|
|
80
80
|
value:
|
|
81
81
|
success: true
|
|
82
82
|
email: test@nonexistentdomainxyz123abc.com
|
|
@@ -92,6 +92,69 @@ paths:
|
|
|
92
92
|
catchAll: false
|
|
93
93
|
account:
|
|
94
94
|
role: false
|
|
95
|
+
acceptAll:
|
|
96
|
+
summary: Catch-all domain accepted the recipient — mailbox unconfirmed
|
|
97
|
+
value:
|
|
98
|
+
success: true
|
|
99
|
+
email: random12345@yahoo.com
|
|
100
|
+
validEmail: accept_all
|
|
101
|
+
validSyntax: true
|
|
102
|
+
reason: domain accepts all addresses.
|
|
103
|
+
domain:
|
|
104
|
+
name: yahoo.com
|
|
105
|
+
disposable: false
|
|
106
|
+
spam: false
|
|
107
|
+
free: true
|
|
108
|
+
validDomain: true
|
|
109
|
+
catchAll: true
|
|
110
|
+
account:
|
|
111
|
+
role: false
|
|
112
|
+
fullMailBox: false
|
|
113
|
+
dns:
|
|
114
|
+
mxRecord:
|
|
115
|
+
- mta5.am0.yahoodns.net.
|
|
116
|
+
- mta6.am0.yahoodns.net.
|
|
117
|
+
- mta7.am0.yahoodns.net.
|
|
118
|
+
nullMxDomain:
|
|
119
|
+
summary: Domain publishes a null MX (single ".") — accepts no mail at all
|
|
120
|
+
value:
|
|
121
|
+
success: true
|
|
122
|
+
email: test@example.com
|
|
123
|
+
validEmail: invalid
|
|
124
|
+
validSyntax: true
|
|
125
|
+
reason: domain does not accept mail.
|
|
126
|
+
domain:
|
|
127
|
+
name: example.com
|
|
128
|
+
disposable: true
|
|
129
|
+
spam: false
|
|
130
|
+
free: false
|
|
131
|
+
validDomain: true
|
|
132
|
+
catchAll: false
|
|
133
|
+
account:
|
|
134
|
+
role: false
|
|
135
|
+
dns:
|
|
136
|
+
mxRecord:
|
|
137
|
+
- .
|
|
138
|
+
noMxAddressOnly:
|
|
139
|
+
summary: Domain has no MX record but a working A record — gets a real SMTP probe
|
|
140
|
+
value:
|
|
141
|
+
success: true
|
|
142
|
+
email: test@neverssl.com
|
|
143
|
+
validEmail: unknown
|
|
144
|
+
validSyntax: true
|
|
145
|
+
reason: We are unable to determine if email is valid or invalid.
|
|
146
|
+
domain:
|
|
147
|
+
name: neverssl.com
|
|
148
|
+
disposable: false
|
|
149
|
+
spam: false
|
|
150
|
+
free: false
|
|
151
|
+
validDomain: true
|
|
152
|
+
catchAll: false
|
|
153
|
+
account:
|
|
154
|
+
role: false
|
|
155
|
+
dns:
|
|
156
|
+
aRecord:
|
|
157
|
+
- 34.223.124.45
|
|
95
158
|
withIp:
|
|
96
159
|
summary: With ip — adds geolocation/security enrichment under address
|
|
97
160
|
value:
|
|
@@ -292,17 +355,18 @@ components:
|
|
|
292
355
|
description: Optional identifier or label provided in the request for record tracking.
|
|
293
356
|
reason:
|
|
294
357
|
type: string
|
|
295
|
-
description: Detailed explanation returned when validEmail is not valid.
|
|
358
|
+
description: Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.
|
|
296
359
|
validEmail:
|
|
297
360
|
type: string
|
|
298
361
|
enum:
|
|
299
362
|
- valid
|
|
363
|
+
- accept_all
|
|
300
364
|
- invalid
|
|
301
365
|
- INVALID_EMAIL
|
|
302
366
|
- unknown
|
|
303
367
|
- risky
|
|
304
368
|
- app_server_blocked
|
|
305
|
-
description: 'Comprehensive deliverability assessment.
|
|
369
|
+
description: 'Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed — see domain.catchAll, reason ''domain accepts all addresses.''. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid — this is a known API bug, handle it defensively as equivalent to invalid.'
|
|
306
370
|
validSyntax:
|
|
307
371
|
type: boolean
|
|
308
372
|
description: Validates email address format compliance with RFC 5322 standards.
|
|
@@ -342,7 +406,7 @@ components:
|
|
|
342
406
|
description: Classification indicating free or consumer-grade email service providers.
|
|
343
407
|
catchAll:
|
|
344
408
|
type: boolean
|
|
345
|
-
description: Detection flag for domains configured to accept mail for any recipient address.
|
|
409
|
+
description: Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.
|
|
346
410
|
description: Domain validation details for the email address.
|
|
347
411
|
AccountObject:
|
|
348
412
|
type: object
|
|
@@ -358,20 +422,19 @@ components:
|
|
|
358
422
|
description: Account-level validation details.
|
|
359
423
|
DnsObject:
|
|
360
424
|
type: object
|
|
361
|
-
required:
|
|
362
|
-
- mxRecord
|
|
425
|
+
required: []
|
|
363
426
|
properties:
|
|
364
427
|
mxRecord:
|
|
365
428
|
type: array
|
|
366
429
|
items:
|
|
367
430
|
type: string
|
|
368
|
-
description:
|
|
431
|
+
description: Every MX hostname at the domain's lowest preference (not just one). ["."] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind — check aRecord in that case.
|
|
369
432
|
aRecord:
|
|
370
433
|
type: array
|
|
371
434
|
items:
|
|
372
435
|
type: string
|
|
373
|
-
description: Collection of A (Address) records for the domain.
|
|
374
|
-
description: DNS records for the email domain.
|
|
436
|
+
description: Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host.
|
|
437
|
+
description: DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.
|
|
375
438
|
AddressObject:
|
|
376
439
|
type: object
|
|
377
440
|
properties:
|
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 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
|
+
"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 (valid/accept_all/invalid/unknown/risky/app_server_blocked), 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",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"examples": {
|
|
57
57
|
"bulkEmailsValidated": {
|
|
58
|
-
"summary": "Mix of
|
|
58
|
+
"summary": "Mix of valid, syntactically invalid, accept_all, null-MX invalid, and unknown (no-MX probe) results",
|
|
59
59
|
"value": {
|
|
60
60
|
"emailResponse": [
|
|
61
61
|
{
|
|
@@ -94,6 +94,74 @@
|
|
|
94
94
|
"name": "not-an-email",
|
|
95
95
|
"validDomain": false
|
|
96
96
|
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"success": true,
|
|
100
|
+
"email": "random12345@yahoo.com",
|
|
101
|
+
"validEmail": "accept_all",
|
|
102
|
+
"validSyntax": true,
|
|
103
|
+
"reason": "domain accepts all addresses.",
|
|
104
|
+
"domain": {
|
|
105
|
+
"name": "yahoo.com",
|
|
106
|
+
"disposable": false,
|
|
107
|
+
"spam": false,
|
|
108
|
+
"free": true,
|
|
109
|
+
"validDomain": true,
|
|
110
|
+
"catchAll": true
|
|
111
|
+
},
|
|
112
|
+
"account": {
|
|
113
|
+
"role": false,
|
|
114
|
+
"fullMailBox": false
|
|
115
|
+
},
|
|
116
|
+
"dns": {
|
|
117
|
+
"mxRecord": [
|
|
118
|
+
"mta5.am0.yahoodns.net.",
|
|
119
|
+
"mta6.am0.yahoodns.net.",
|
|
120
|
+
"mta7.am0.yahoodns.net."
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"success": true,
|
|
126
|
+
"email": "test@example.com",
|
|
127
|
+
"validEmail": "invalid",
|
|
128
|
+
"validSyntax": true,
|
|
129
|
+
"reason": "domain does not accept mail.",
|
|
130
|
+
"domain": {
|
|
131
|
+
"name": "example.com",
|
|
132
|
+
"disposable": true,
|
|
133
|
+
"spam": false,
|
|
134
|
+
"free": false,
|
|
135
|
+
"validDomain": true,
|
|
136
|
+
"catchAll": false
|
|
137
|
+
},
|
|
138
|
+
"account": {
|
|
139
|
+
"role": false
|
|
140
|
+
},
|
|
141
|
+
"dns": {
|
|
142
|
+
"mxRecord": ["."]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"success": true,
|
|
147
|
+
"email": "test@neverssl.com",
|
|
148
|
+
"validEmail": "unknown",
|
|
149
|
+
"validSyntax": true,
|
|
150
|
+
"reason": "We are unable to determine if email is valid or invalid.",
|
|
151
|
+
"domain": {
|
|
152
|
+
"name": "neverssl.com",
|
|
153
|
+
"disposable": false,
|
|
154
|
+
"spam": false,
|
|
155
|
+
"free": false,
|
|
156
|
+
"validDomain": true,
|
|
157
|
+
"catchAll": false
|
|
158
|
+
},
|
|
159
|
+
"account": {
|
|
160
|
+
"role": false
|
|
161
|
+
},
|
|
162
|
+
"dns": {
|
|
163
|
+
"aRecord": ["34.223.124.45"]
|
|
164
|
+
}
|
|
97
165
|
}
|
|
98
166
|
]
|
|
99
167
|
}
|
|
@@ -298,19 +366,20 @@
|
|
|
298
366
|
},
|
|
299
367
|
"reason": {
|
|
300
368
|
"type": "string",
|
|
301
|
-
"description": "Detailed explanation returned when validEmail is not valid."
|
|
369
|
+
"description": "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
302
370
|
},
|
|
303
371
|
"validEmail": {
|
|
304
372
|
"type": "string",
|
|
305
373
|
"enum": [
|
|
306
374
|
"valid",
|
|
375
|
+
"accept_all",
|
|
307
376
|
"invalid",
|
|
308
377
|
"INVALID_EMAIL",
|
|
309
378
|
"unknown",
|
|
310
379
|
"risky",
|
|
311
380
|
"app_server_blocked"
|
|
312
381
|
],
|
|
313
|
-
"description": "Comprehensive deliverability assessment.
|
|
382
|
+
"description": "Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed — see domain.catchAll, reason 'domain accepts all addresses.'. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid — this is a known API bug, handle it defensively as equivalent to invalid."
|
|
314
383
|
},
|
|
315
384
|
"validSyntax": {
|
|
316
385
|
"type": "boolean",
|
|
@@ -362,7 +431,7 @@
|
|
|
362
431
|
},
|
|
363
432
|
"catchAll": {
|
|
364
433
|
"type": "boolean",
|
|
365
|
-
"description": "Detection flag for domains configured to accept mail for any recipient address."
|
|
434
|
+
"description": "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
366
435
|
}
|
|
367
436
|
},
|
|
368
437
|
"description": "Domain validation details for the email address."
|
|
@@ -384,24 +453,24 @@
|
|
|
384
453
|
},
|
|
385
454
|
"DnsObject": {
|
|
386
455
|
"type": "object",
|
|
387
|
-
"required": [
|
|
456
|
+
"required": [],
|
|
388
457
|
"properties": {
|
|
389
458
|
"mxRecord": {
|
|
390
459
|
"type": "array",
|
|
391
460
|
"items": {
|
|
392
461
|
"type": "string"
|
|
393
462
|
},
|
|
394
|
-
"description": "
|
|
463
|
+
"description": "Every MX hostname at the domain's lowest preference (not just one). [\".\"] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind — check aRecord in that case."
|
|
395
464
|
},
|
|
396
465
|
"aRecord": {
|
|
397
466
|
"type": "array",
|
|
398
467
|
"items": {
|
|
399
468
|
"type": "string"
|
|
400
469
|
},
|
|
401
|
-
"description": "Collection of A (Address) records for the domain.
|
|
470
|
+
"description": "Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host."
|
|
402
471
|
}
|
|
403
472
|
},
|
|
404
|
-
"description": "DNS records for the email domain."
|
|
473
|
+
"description": "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
405
474
|
},
|
|
406
475
|
"AddressObject": {
|
|
407
476
|
"type": "object",
|
|
@@ -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/app_server_blocked 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/accept_all/invalid/unknown/risky/app_server_blocked status.",
|
|
7
7
|
"contact": {
|
|
8
8
|
"name": "APIFreaks Support",
|
|
9
9
|
"url": "https://apifreaks.com/contact",
|
|
@@ -96,8 +96,8 @@
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
"
|
|
100
|
-
"summary": "Valid syntax, domain
|
|
99
|
+
"nonexistentDomain": {
|
|
100
|
+
"summary": "Valid syntax, domain does not exist (NXDOMAIN)",
|
|
101
101
|
"value": {
|
|
102
102
|
"success": true,
|
|
103
103
|
"email": "test@nonexistentdomainxyz123abc.com",
|
|
@@ -117,6 +117,83 @@
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
},
|
|
120
|
+
"acceptAll": {
|
|
121
|
+
"summary": "Catch-all domain accepted the recipient — mailbox unconfirmed",
|
|
122
|
+
"value": {
|
|
123
|
+
"success": true,
|
|
124
|
+
"email": "random12345@yahoo.com",
|
|
125
|
+
"validEmail": "accept_all",
|
|
126
|
+
"validSyntax": true,
|
|
127
|
+
"reason": "domain accepts all addresses.",
|
|
128
|
+
"domain": {
|
|
129
|
+
"name": "yahoo.com",
|
|
130
|
+
"disposable": false,
|
|
131
|
+
"spam": false,
|
|
132
|
+
"free": true,
|
|
133
|
+
"validDomain": true,
|
|
134
|
+
"catchAll": true
|
|
135
|
+
},
|
|
136
|
+
"account": {
|
|
137
|
+
"role": false,
|
|
138
|
+
"fullMailBox": false
|
|
139
|
+
},
|
|
140
|
+
"dns": {
|
|
141
|
+
"mxRecord": [
|
|
142
|
+
"mta5.am0.yahoodns.net.",
|
|
143
|
+
"mta6.am0.yahoodns.net.",
|
|
144
|
+
"mta7.am0.yahoodns.net."
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"nullMxDomain": {
|
|
150
|
+
"summary": "Domain publishes a null MX (single \".\") — accepts no mail at all",
|
|
151
|
+
"value": {
|
|
152
|
+
"success": true,
|
|
153
|
+
"email": "test@example.com",
|
|
154
|
+
"validEmail": "invalid",
|
|
155
|
+
"validSyntax": true,
|
|
156
|
+
"reason": "domain does not accept mail.",
|
|
157
|
+
"domain": {
|
|
158
|
+
"name": "example.com",
|
|
159
|
+
"disposable": true,
|
|
160
|
+
"spam": false,
|
|
161
|
+
"free": false,
|
|
162
|
+
"validDomain": true,
|
|
163
|
+
"catchAll": false
|
|
164
|
+
},
|
|
165
|
+
"account": {
|
|
166
|
+
"role": false
|
|
167
|
+
},
|
|
168
|
+
"dns": {
|
|
169
|
+
"mxRecord": ["."]
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"noMxAddressOnly": {
|
|
174
|
+
"summary": "Domain has no MX record but a working A record — gets a real SMTP probe",
|
|
175
|
+
"value": {
|
|
176
|
+
"success": true,
|
|
177
|
+
"email": "test@neverssl.com",
|
|
178
|
+
"validEmail": "unknown",
|
|
179
|
+
"validSyntax": true,
|
|
180
|
+
"reason": "We are unable to determine if email is valid or invalid.",
|
|
181
|
+
"domain": {
|
|
182
|
+
"name": "neverssl.com",
|
|
183
|
+
"disposable": false,
|
|
184
|
+
"spam": false,
|
|
185
|
+
"free": false,
|
|
186
|
+
"validDomain": true,
|
|
187
|
+
"catchAll": false
|
|
188
|
+
},
|
|
189
|
+
"account": {
|
|
190
|
+
"role": false
|
|
191
|
+
},
|
|
192
|
+
"dns": {
|
|
193
|
+
"aRecord": ["34.223.124.45"]
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
},
|
|
120
197
|
"withIp": {
|
|
121
198
|
"summary": "With ip — adds geolocation/security enrichment under address",
|
|
122
199
|
"value": {
|
|
@@ -387,12 +464,12 @@
|
|
|
387
464
|
},
|
|
388
465
|
"reason": {
|
|
389
466
|
"type": "string",
|
|
390
|
-
"description": "Detailed explanation returned when validEmail is not valid."
|
|
467
|
+
"description": "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
391
468
|
},
|
|
392
469
|
"validEmail": {
|
|
393
470
|
"type": "string",
|
|
394
|
-
"enum": ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
395
|
-
"description": "Comprehensive deliverability assessment.
|
|
471
|
+
"enum": ["valid", "accept_all", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
472
|
+
"description": "Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed — see domain.catchAll, reason 'domain accepts all addresses.'. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid — this is a known API bug, handle it defensively as equivalent to invalid."
|
|
396
473
|
},
|
|
397
474
|
"validSyntax": {
|
|
398
475
|
"type": "boolean",
|
|
@@ -444,7 +521,7 @@
|
|
|
444
521
|
},
|
|
445
522
|
"catchAll": {
|
|
446
523
|
"type": "boolean",
|
|
447
|
-
"description": "Detection flag for domains configured to accept mail for any recipient address."
|
|
524
|
+
"description": "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
448
525
|
}
|
|
449
526
|
},
|
|
450
527
|
"description": "Domain validation details for the email address."
|
|
@@ -466,24 +543,24 @@
|
|
|
466
543
|
},
|
|
467
544
|
"DnsObject": {
|
|
468
545
|
"type": "object",
|
|
469
|
-
"required": [
|
|
546
|
+
"required": [],
|
|
470
547
|
"properties": {
|
|
471
548
|
"mxRecord": {
|
|
472
549
|
"type": "array",
|
|
473
550
|
"items": {
|
|
474
551
|
"type": "string"
|
|
475
552
|
},
|
|
476
|
-
"description": "
|
|
553
|
+
"description": "Every MX hostname at the domain's lowest preference (not just one). [\".\"] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind — check aRecord in that case."
|
|
477
554
|
},
|
|
478
555
|
"aRecord": {
|
|
479
556
|
"type": "array",
|
|
480
557
|
"items": {
|
|
481
558
|
"type": "string"
|
|
482
559
|
},
|
|
483
|
-
"description": "Collection of A (Address) records for the domain.
|
|
560
|
+
"description": "Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host."
|
|
484
561
|
}
|
|
485
562
|
},
|
|
486
|
-
"description": "DNS records for the email domain."
|
|
563
|
+
"description": "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
487
564
|
},
|
|
488
565
|
"AddressObject": {
|
|
489
566
|
"type": "object",
|