@apifreaks/openapi-specs 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apifreaks/openapi-specs",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Public OpenAPI 3.1 specifications for all APIFreaks API products.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",