@apifreaks/openapi-specs 0.3.2 → 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 +3486 -128
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3486 -127
- package/dist/specs/domain/domain-reputation.yaml +898 -0
- package/dist/specs/domain/domain-typosquatting.yaml +253 -0
- 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/domain/domain-reputation.json +1115 -0
- package/specs/domain/domain-typosquatting.json +344 -0
- package/specs/email-validation/bulk-email-validation.json +78 -9
- package/specs/email-validation/email-checker.json +88 -11
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
openapi: 3.1.1
|
|
2
|
+
info:
|
|
3
|
+
title: Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: Search for registered domains that read like typo variants of a brand keyword, or that match a wildcard pattern, across the full TLD set. Each match returns what is available of its registration date, expiry date, last-seen date, and drop status, paginated at 100 domains per page. Built for brand and trademark protection, phishing discovery, scheduled monitoring, and domain reclaim.
|
|
6
|
+
contact:
|
|
7
|
+
name: APIFreaks Support
|
|
8
|
+
url: https://apifreaks.com/contact
|
|
9
|
+
email: support@apifreaks.com
|
|
10
|
+
servers:
|
|
11
|
+
- url: https://api.apifreaks.com/v1.0
|
|
12
|
+
description: Domain Typosquatting API Server
|
|
13
|
+
paths:
|
|
14
|
+
/domain/typosquatting:
|
|
15
|
+
get:
|
|
16
|
+
tags:
|
|
17
|
+
- Domain APIs
|
|
18
|
+
summary: Find registered typo-variant or wildcard-pattern domains for a brand keyword.
|
|
19
|
+
description: The Domain Typosquatting API searches for registered domains that are typo or look-alike variants of a brand keyword, or that match a wildcard pattern. Results include registration lifecycle data and drop status across 1529+ TLDs, paginated at 100 domains per page.
|
|
20
|
+
parameters:
|
|
21
|
+
- name: format
|
|
22
|
+
in: query
|
|
23
|
+
required: false
|
|
24
|
+
schema:
|
|
25
|
+
type: string
|
|
26
|
+
enum:
|
|
27
|
+
- json
|
|
28
|
+
- xml
|
|
29
|
+
default: json
|
|
30
|
+
description: Format of the response.
|
|
31
|
+
- name: keyword
|
|
32
|
+
in: query
|
|
33
|
+
required: false
|
|
34
|
+
schema:
|
|
35
|
+
type: string
|
|
36
|
+
minLength: 3
|
|
37
|
+
maxLength: 63
|
|
38
|
+
description: Brand or label to find typo variants for. 3-63 characters, letters, digits, or hyphens, a single label with no dots. Case-insensitive. Use either keyword or pattern, never both.
|
|
39
|
+
- name: pattern
|
|
40
|
+
in: query
|
|
41
|
+
required: false
|
|
42
|
+
schema:
|
|
43
|
+
type: string
|
|
44
|
+
minLength: 3
|
|
45
|
+
maxLength: 63
|
|
46
|
+
description: Wildcard search string that combines fuzzy matching with * wildcards. 3-63 characters total, * is the only supported wildcard and each one matches zero or more characters, maximum 3 asterisks per request. Use either keyword or pattern, never both.
|
|
47
|
+
- name: pageToken
|
|
48
|
+
in: query
|
|
49
|
+
required: false
|
|
50
|
+
schema:
|
|
51
|
+
type: string
|
|
52
|
+
description: Token from nextPageToken in the previous response. Required to retrieve page 2 and onward. The original keyword or pattern must be passed alongside the token on every page request. Results page at 100 domains per page.
|
|
53
|
+
responses:
|
|
54
|
+
'200':
|
|
55
|
+
description: Success
|
|
56
|
+
content:
|
|
57
|
+
application/json:
|
|
58
|
+
schema:
|
|
59
|
+
$ref: '#/components/schemas/DomainTyposquattingResponse'
|
|
60
|
+
examples:
|
|
61
|
+
keywordSuccess:
|
|
62
|
+
summary: Keyword search (paypal)
|
|
63
|
+
value:
|
|
64
|
+
status: true
|
|
65
|
+
totalRecords: 1284
|
|
66
|
+
currentPage: 1
|
|
67
|
+
hasNextPage: true
|
|
68
|
+
totalPages: 13
|
|
69
|
+
nextPageToken: <opaque_token>
|
|
70
|
+
domains:
|
|
71
|
+
- domainName: p-aypal.com
|
|
72
|
+
createDate: '2025-04-17'
|
|
73
|
+
expiryDate: '2026-04-17'
|
|
74
|
+
lastSeen: '2026-05-29'
|
|
75
|
+
isDropped: true
|
|
76
|
+
- domainName: p-aypal.de
|
|
77
|
+
lastSeen: '2024-07-11'
|
|
78
|
+
isDropped: true
|
|
79
|
+
- domainName: p0aypal.com
|
|
80
|
+
createDate: '2017-12-29'
|
|
81
|
+
expiryDate: '2026-12-29'
|
|
82
|
+
lastSeen: '2026-08-18'
|
|
83
|
+
isDropped: false
|
|
84
|
+
- domainName: p7ypal.com
|
|
85
|
+
isDropped: true
|
|
86
|
+
- domainName: pa-pal.club
|
|
87
|
+
createDate: '2019-10-25'
|
|
88
|
+
expiryDate: '2020-10-25'
|
|
89
|
+
isDropped: false
|
|
90
|
+
patternSuccess:
|
|
91
|
+
summary: Wildcard pattern search (*paypal*)
|
|
92
|
+
value:
|
|
93
|
+
status: true
|
|
94
|
+
totalRecords: 5471
|
|
95
|
+
currentPage: 1
|
|
96
|
+
hasNextPage: true
|
|
97
|
+
totalPages: 55
|
|
98
|
+
nextPageToken: <opaque_token>
|
|
99
|
+
domains:
|
|
100
|
+
- domainName: paypal-support.com
|
|
101
|
+
createDate: '2024-11-02'
|
|
102
|
+
expiryDate: '2026-11-02'
|
|
103
|
+
lastSeen: '2026-08-30'
|
|
104
|
+
isDropped: false
|
|
105
|
+
- domainName: login-paypal.net
|
|
106
|
+
lastSeen: '2025-12-14'
|
|
107
|
+
isDropped: true
|
|
108
|
+
emptyResult:
|
|
109
|
+
summary: No matches found
|
|
110
|
+
value:
|
|
111
|
+
status: true
|
|
112
|
+
totalRecords: 0
|
|
113
|
+
currentPage: 1
|
|
114
|
+
hasNextPage: false
|
|
115
|
+
totalPages: 0
|
|
116
|
+
domains: []
|
|
117
|
+
headers:
|
|
118
|
+
X-AF-Credits-Cost:
|
|
119
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
120
|
+
'400':
|
|
121
|
+
description: Bad Request – Invalid parameters
|
|
122
|
+
content:
|
|
123
|
+
application/json:
|
|
124
|
+
schema:
|
|
125
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
126
|
+
examples:
|
|
127
|
+
shortPattern:
|
|
128
|
+
summary: Pattern has too few non-wildcard characters
|
|
129
|
+
value:
|
|
130
|
+
error: Invalid Pattern Exception
|
|
131
|
+
message: The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.
|
|
132
|
+
path: /v1.0/domain/typosquatting
|
|
133
|
+
status: 400
|
|
134
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
135
|
+
bothParams:
|
|
136
|
+
summary: Both keyword and pattern supplied
|
|
137
|
+
value:
|
|
138
|
+
error: Invalid Param Exception
|
|
139
|
+
message: Use either the "keyword" or the "pattern" parameter, never both.
|
|
140
|
+
path: /v1.0/domain/typosquatting
|
|
141
|
+
status: 400
|
|
142
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
143
|
+
missingParam:
|
|
144
|
+
summary: Neither keyword nor pattern supplied
|
|
145
|
+
value:
|
|
146
|
+
error: Invalid Param Exception
|
|
147
|
+
message: Please provide either a "keyword" or a "pattern" parameter.
|
|
148
|
+
path: /v1.0/domain/typosquatting
|
|
149
|
+
status: 400
|
|
150
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
151
|
+
headers:
|
|
152
|
+
X-AF-Credits-Cost:
|
|
153
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
154
|
+
operationId: getDomainTyposquatting
|
|
155
|
+
components:
|
|
156
|
+
securitySchemes:
|
|
157
|
+
ApiKeyAuthHeader:
|
|
158
|
+
type: apiKey
|
|
159
|
+
in: header
|
|
160
|
+
name: X-apiKey
|
|
161
|
+
description: Pass your API key via the X-apiKey request header.
|
|
162
|
+
ApiKeyAuthQuery:
|
|
163
|
+
type: apiKey
|
|
164
|
+
in: query
|
|
165
|
+
name: apiKey
|
|
166
|
+
description: Pass your API key via the apiKey query parameter.
|
|
167
|
+
schemas:
|
|
168
|
+
DomainTyposquattingResponse:
|
|
169
|
+
type: object
|
|
170
|
+
required:
|
|
171
|
+
- status
|
|
172
|
+
- totalRecords
|
|
173
|
+
- currentPage
|
|
174
|
+
- hasNextPage
|
|
175
|
+
- totalPages
|
|
176
|
+
- domains
|
|
177
|
+
properties:
|
|
178
|
+
status:
|
|
179
|
+
type: boolean
|
|
180
|
+
description: Indicates if the request was successful.
|
|
181
|
+
totalRecords:
|
|
182
|
+
type: integer
|
|
183
|
+
description: Total number of domains found.
|
|
184
|
+
currentPage:
|
|
185
|
+
type: integer
|
|
186
|
+
description: Page number of the current response. Starts at 1.
|
|
187
|
+
hasNextPage:
|
|
188
|
+
type: boolean
|
|
189
|
+
description: true if at least one additional page is available.
|
|
190
|
+
totalPages:
|
|
191
|
+
type: integer
|
|
192
|
+
description: Total number of pages available.
|
|
193
|
+
nextPageToken:
|
|
194
|
+
type: string
|
|
195
|
+
description: Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true.
|
|
196
|
+
domains:
|
|
197
|
+
type: array
|
|
198
|
+
items:
|
|
199
|
+
$ref: '#/components/schemas/DomainItem'
|
|
200
|
+
description: List of typo-variant or pattern-matched domains on the current page.
|
|
201
|
+
description: Paginated response containing typo-variant or pattern-matched domains.
|
|
202
|
+
DomainItem:
|
|
203
|
+
type: object
|
|
204
|
+
required:
|
|
205
|
+
- domainName
|
|
206
|
+
- isDropped
|
|
207
|
+
properties:
|
|
208
|
+
domainName:
|
|
209
|
+
type: string
|
|
210
|
+
description: Domain name.
|
|
211
|
+
createDate:
|
|
212
|
+
type: string
|
|
213
|
+
description: Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
214
|
+
expiryDate:
|
|
215
|
+
type: string
|
|
216
|
+
description: Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
217
|
+
lastSeen:
|
|
218
|
+
type: string
|
|
219
|
+
description: Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set.
|
|
220
|
+
isDropped:
|
|
221
|
+
type: boolean
|
|
222
|
+
description: Indicates whether the domain has dropped out of the registry and become available to register again.
|
|
223
|
+
description: A single typo-variant or pattern-matched domain with registration lifecycle data.
|
|
224
|
+
ErrorResponse:
|
|
225
|
+
type: object
|
|
226
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
227
|
+
required:
|
|
228
|
+
- message
|
|
229
|
+
properties:
|
|
230
|
+
error:
|
|
231
|
+
type: string
|
|
232
|
+
description: Short error category or exception type.
|
|
233
|
+
message:
|
|
234
|
+
type: string
|
|
235
|
+
description: Human-readable error message describing the failure.
|
|
236
|
+
path:
|
|
237
|
+
type: string
|
|
238
|
+
description: API endpoint path that produced the error.
|
|
239
|
+
status:
|
|
240
|
+
type: integer
|
|
241
|
+
description: HTTP status code returned with the error.
|
|
242
|
+
timestamp:
|
|
243
|
+
type: string
|
|
244
|
+
format: date-time
|
|
245
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
246
|
+
headers:
|
|
247
|
+
X-AF-Credits-Cost:
|
|
248
|
+
description: Specifies the number of credits consumed by the current request.
|
|
249
|
+
schema:
|
|
250
|
+
type: integer
|
|
251
|
+
security:
|
|
252
|
+
- ApiKeyAuthHeader: []
|
|
253
|
+
- ApiKeyAuthQuery: []
|
|
@@ -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:
|