@apifreaks/openapi-specs 0.1.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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/index.cjs +44663 -0
  4. package/dist/index.d.cts +30 -0
  5. package/dist/index.d.ts +30 -0
  6. package/dist/index.js +44631 -0
  7. package/package.json +81 -0
  8. package/specs/commodity/commodity-fluctuation.json +301 -0
  9. package/specs/commodity/commodity-prices.json +317 -0
  10. package/specs/commodity/commodity-symbols.json +215 -0
  11. package/specs/commodity/commodity-time-series.json +329 -0
  12. package/specs/commodity/historical-commodity-prices.json +273 -0
  13. package/specs/currency/currency-converter.json +261 -0
  14. package/specs/currency/currency-fluctuation.json +282 -0
  15. package/specs/currency/currency-historical-data-limit.json +158 -0
  16. package/specs/currency/currency-rate.json +229 -0
  17. package/specs/currency/currency-supported.json +234 -0
  18. package/specs/currency/currency-symbols.json +161 -0
  19. package/specs/currency/currency-time-series.json +325 -0
  20. package/specs/currency/geolocalized-currency-conversion.json +287 -0
  21. package/specs/currency/historical-currency-converter.json +269 -0
  22. package/specs/currency/historical-currency-rate.json +246 -0
  23. package/specs/dns/bulk-dns-lookup.json +624 -0
  24. package/specs/dns/dns-history-lookup.json +579 -0
  25. package/specs/dns/dns-lookup.json +466 -0
  26. package/specs/dns/reverse-dns-lookup.json +414 -0
  27. package/specs/domain/bulk-domain-checker.json +284 -0
  28. package/specs/domain/domain-search-with-suggestions.json +280 -0
  29. package/specs/domain/domain-search.json +206 -0
  30. package/specs/domain/subdomain-lookup.json +343 -0
  31. package/specs/email-validation/bulk-email-validation.json +534 -0
  32. package/specs/email-validation/email-checker.json +586 -0
  33. package/specs/financial/bulk-vat-rates-country.json +341 -0
  34. package/specs/financial/financial-apis-supported-countries.json +204 -0
  35. package/specs/financial/iban-validation.json +328 -0
  36. package/specs/financial/swift-code-finder.json +192 -0
  37. package/specs/financial/swift-code-lookup.json +220 -0
  38. package/specs/financial/vat-number-validation.json +283 -0
  39. package/specs/financial/vat-rates-by-ip.json +275 -0
  40. package/specs/financial/vat-rates-country.json +288 -0
  41. package/specs/general/usage-credits.json +218 -0
  42. package/specs/geocoding/forward-geocoding.json +402 -0
  43. package/specs/geocoding/reverse-geocoding.json +326 -0
  44. package/specs/geodb/administrative-units-details.json +250 -0
  45. package/specs/geodb/administrative-units-levels.json +198 -0
  46. package/specs/geodb/administrative-units.json +237 -0
  47. package/specs/geodb/cities.json +288 -0
  48. package/specs/geodb/countries-details.json +274 -0
  49. package/specs/geodb/countries.json +276 -0
  50. package/specs/geodb/flags-supported.json +166 -0
  51. package/specs/geodb/flags.json +227 -0
  52. package/specs/geodb/regions.json +109 -0
  53. package/specs/geodb/subregions.json +217 -0
  54. package/specs/ip-intelligence/bulk-ip-lookup.json +1162 -0
  55. package/specs/ip-intelligence/bulk-ip-threat-intelligence.json +417 -0
  56. package/specs/ip-intelligence/ip-locator.json +941 -0
  57. package/specs/ip-intelligence/ip-threat-intelligence.json +316 -0
  58. package/specs/other/astronomy-data.json +803 -0
  59. package/specs/pdf/delete-pdf-page.json +286 -0
  60. package/specs/pdf/linearize-pdf.json +277 -0
  61. package/specs/pdf/merge-pdf.json +285 -0
  62. package/specs/pdf/pdf-compress.json +304 -0
  63. package/specs/pdf/pdf-decrypt.json +297 -0
  64. package/specs/pdf/pdf-encrypt.json +314 -0
  65. package/specs/pdf/pdf-extract-pages.json +295 -0
  66. package/specs/pdf/pdf-file-status.json +208 -0
  67. package/specs/pdf/pdf-file.json +190 -0
  68. package/specs/pdf/pdf-files.json +126 -0
  69. package/specs/pdf/pdf-resource-download.json +168 -0
  70. package/specs/pdf/pdf-resource-upload-binary.json +218 -0
  71. package/specs/pdf/pdf-resource-upload.json +248 -0
  72. package/specs/pdf/pdf-restrict.json +343 -0
  73. package/specs/pdf/pdf-split-pages.json +281 -0
  74. package/specs/pdf/pdf-task-status.json +252 -0
  75. package/specs/pdf/pdf-to-image.json +1219 -0
  76. package/specs/pdf/pdf-unrestrict.json +324 -0
  77. package/specs/pdf/rotate-pdf-pages.json +305 -0
  78. package/specs/phone-validation/bulk-phone-number-validation.json +518 -0
  79. package/specs/phone-validation/phone-number-validation.json +456 -0
  80. package/specs/scraper/web-scraper.json +674 -0
  81. package/specs/screenshot/bulk-screenshot.json +949 -0
  82. package/specs/screenshot/website-screenshot.json +1147 -0
  83. package/specs/ssl/ssl-certificate-chain-lookup.json +756 -0
  84. package/specs/ssl/ssl-certificate-lookup.json +634 -0
  85. package/specs/timezone/timezone-converter.json +362 -0
  86. package/specs/timezone/timezone-lookup.json +910 -0
  87. package/specs/user-agent/bulk-user-agent-parser.json +441 -0
  88. package/specs/user-agent/user-agent-parser.json +346 -0
  89. package/specs/weather/air-quality.json +779 -0
  90. package/specs/weather/bulk-live-weather.json +834 -0
  91. package/specs/weather/flood-forecast.json +693 -0
  92. package/specs/weather/historical-weather.json +1019 -0
  93. package/specs/weather/live-weather.json +789 -0
  94. package/specs/weather/marine-weather.json +940 -0
  95. package/specs/weather/time-series-weather.json +1056 -0
  96. package/specs/weather/weather-forecast.json +1202 -0
  97. package/specs/whois/asn-lookup.json +729 -0
  98. package/specs/whois/bulk-whois-lookup.json +698 -0
  99. package/specs/whois/domain-whois-history-lookup.json +500 -0
  100. package/specs/whois/reverse-whois.json +625 -0
  101. package/specs/whois/whois-domain-lookup.json +533 -0
  102. package/specs/whois/whois-ip-lookup.json +1110 -0
  103. package/specs/zip-code/bulk-zip-code-lookup.json +318 -0
  104. package/specs/zip-code/zip-code-api.json +299 -0
  105. package/specs/zip-code/zip-code-distance-match.json +311 -0
  106. package/specs/zip-code/zip-code-distance.json +307 -0
  107. package/specs/zip-code/zip-codes-by-city.json +279 -0
  108. package/specs/zip-code/zip-codes-by-region.json +278 -0
  109. package/specs/zip-code/zip-codes-radius-search.json +349 -0
@@ -0,0 +1,414 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Reverse DNS Lookup API - Find Every Hostname Behind an IP, MX, NS, or CNAME",
5
+ "version": "1.0.0",
6
+ "description": "The Reverse DNS Lookup API finds every hostname associated with a given IP address, CIDR block, nameserver, mail host, or other DNS selector. The type parameter switches between A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME lookups to control how the value parameter is interpreted. Wildcard regex matching on the value parameter is supported for flexible pattern searches such as m*.google.com. An exact-match filter is available when you need only exact hits rather than all partial matches. Results are paginated with 100 records per page and include dated DNS snapshots for each matched domain.",
7
+ "contact": {
8
+ "name": "APIFreaks Support",
9
+ "url": "https://apifreaks.com/contact",
10
+ "email": "support@apifreaks.com"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://api.apifreaks.com/v1.0",
16
+ "description": "Reverse DNS Lookup API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/domain/dns/reverse": {
21
+ "get": {
22
+ "tags": ["DNS APIs"],
23
+ "summary": "Retrieve all hostnames associated with any A, AAAA, MX, NS, SOA, SPF, TXT, or CNAME DNS record",
24
+ "description": "Perform a reverse DNS lookup by providing an IP or CIDR for A/AAAA lookups, or a hostname selector for MX, NS, SOA, SPF, TXT, and CNAME queries. Returns paginated results with dated DNS snapshots for each matched domain.",
25
+ "operationId": "reverseDnsLookup",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "description": "Format of the response.",
32
+ "schema": {
33
+ "type": "string",
34
+ "enum": ["json", "xml"],
35
+ "default": "json"
36
+ }
37
+ },
38
+ {
39
+ "name": "type",
40
+ "in": "query",
41
+ "required": true,
42
+ "description": "The type of reverse DNS lookup to perform. Determines how the value parameter is interpreted:\n- A: IPv4 CIDR block\n- AAAA: IPv6 CIDR block\n- MX: Mail provider domain\n- NS: Name server provider hostname\n- SOA: SOA record admin domain\n- SPF/TXT: Target verification strings\n- CNAME: Target hostname",
43
+ "schema": {
44
+ "type": "string",
45
+ "enum": ["A", "AAAA", "MX", "NS", "SOA", "SPF", "TXT", "CNAME"]
46
+ }
47
+ },
48
+ {
49
+ "name": "value",
50
+ "in": "query",
51
+ "required": true,
52
+ "description": "Provide an IP or CIDR for A/AAAA lookups, or a hostname/selector for MX, NS, SOA, SPF, TXT, and CNAME queries. Wildcard regex patterns are also supported (e.g., mail.google.com, m*.google.com, _spf.g*.com, s*.g*.com).",
53
+ "schema": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ {
58
+ "name": "exact",
59
+ "in": "query",
60
+ "required": false,
61
+ "description": "When true, returns only records that exactly match the input (NS, MX, CNAME, SOA, SPF, TXT). When false, returns all matches (default when omitted).",
62
+ "schema": {
63
+ "type": "boolean",
64
+ "default": false
65
+ }
66
+ },
67
+ {
68
+ "name": "page",
69
+ "in": "query",
70
+ "required": false,
71
+ "description": "Page number to paginate through results (defaults to 1).",
72
+ "schema": {
73
+ "type": "integer",
74
+ "minimum": 1,
75
+ "default": 1
76
+ }
77
+ }
78
+ ],
79
+ "responses": {
80
+ "200": {
81
+ "description": "Successful Response",
82
+ "content": {
83
+ "application/json": {
84
+ "schema": {
85
+ "$ref": "#/components/schemas/ReverseDnsResponse"
86
+ },
87
+ "examples": {
88
+ "default": {
89
+ "summary": "Reverse DNS lookup for IP 8.8.8.8",
90
+ "value": {
91
+ "totalRecords": 89950,
92
+ "totalPages": 900,
93
+ "currentPage": 1,
94
+ "reverseDnsRecords": [
95
+ {
96
+ "queryTime": "2024-05-30",
97
+ "domainName": "www.maguire.romamenu.cotest.avalon-invest.pro",
98
+ "dnsTypes": {
99
+ "A": 1
100
+ },
101
+ "dnsRecords": [
102
+ {
103
+ "name": "www.maguire.romamenu.cotest.avalon-invest.pro",
104
+ "type": 1,
105
+ "dnsType": "A",
106
+ "ttl": 300,
107
+ "rawText": "www.maguire.romamenu.cotest.avalon-invest.pro.\t300\tIN\tA\t8.8.8.8",
108
+ "rRsetType": 1,
109
+ "address": "8.8.8.8"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "queryTime": "2026-06-13",
115
+ "domainName": "qa-allure.salt-dev.ws",
116
+ "dnsTypes": {
117
+ "A": 1
118
+ },
119
+ "dnsRecords": [
120
+ {
121
+ "name": "qa-allure.salt-dev.ws",
122
+ "type": 1,
123
+ "dnsType": "A",
124
+ "ttl": 300,
125
+ "rawText": "qa-allure.salt-dev.ws.\t300\tIN\tA\t8.8.8.8",
126
+ "rRsetType": 1,
127
+ "address": "8.8.8.8"
128
+ }
129
+ ]
130
+ },
131
+ {
132
+ "queryTime": "2026-03-21",
133
+ "domainName": "www.hailibu.cn",
134
+ "dnsTypes": {
135
+ "A": 1
136
+ },
137
+ "dnsRecords": [
138
+ {
139
+ "name": "www.hailibu.cn",
140
+ "type": 1,
141
+ "dnsType": "A",
142
+ "ttl": 1,
143
+ "rawText": "www.hailibu.cn.\t\t1\tIN\tA\t8.8.8.8",
144
+ "rRsetType": 1,
145
+ "address": "8.8.8.8"
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "400": {
157
+ "description": "Invalid DNS type or missing required parameter",
158
+ "content": {
159
+ "application/json": {
160
+ "schema": {
161
+ "$ref": "#/components/schemas/ErrorResponse"
162
+ },
163
+ "examples": {
164
+ "invalidType": {
165
+ "summary": "Invalid DNS type",
166
+ "value": {
167
+ "timestamp": "2026-07-23T09:51:58.340Z",
168
+ "path": "/v2.1/dns/reverse",
169
+ "status": 400,
170
+ "error": "Invalid Param Exception",
171
+ "message": "Invalid dns Record Type. Kindly use the supported record types."
172
+ }
173
+ },
174
+ "missingValue": {
175
+ "summary": "Missing required value parameter",
176
+ "value": {
177
+ "error": "Invalid Param Exception",
178
+ "message": "please pass correct parameters",
179
+ "path": "/v1.0/domain/dns/reverse",
180
+ "status": 400,
181
+ "timestamp": "2026-07-23T09:51:58.951Z"
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ },
188
+ "404": {
189
+ "description": "No reverse DNS records found for the given input",
190
+ "content": {
191
+ "application/json": {
192
+ "schema": {
193
+ "$ref": "#/components/schemas/ErrorResponse"
194
+ },
195
+ "examples": {
196
+ "default": {
197
+ "summary": "No records found",
198
+ "value": {
199
+ "timestamp": "2026-07-23T09:52:07.079Z",
200
+ "path": "/v2.1/dns/reverse",
201
+ "status": 404,
202
+ "error": "Record not Found",
203
+ "message": "No Record Found across: zzsuperrandomnonexistentmxprovider99988.com"
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }
213
+ },
214
+ "components": {
215
+ "securitySchemes": {
216
+ "ApiKeyAuthHeader": {
217
+ "type": "apiKey",
218
+ "in": "header",
219
+ "name": "X-apiKey",
220
+ "description": "Pass your API key in the X-apiKey header."
221
+ },
222
+ "ApiKeyAuthQuery": {
223
+ "type": "apiKey",
224
+ "in": "query",
225
+ "name": "apiKey",
226
+ "description": "Pass your API key as the apiKey query parameter."
227
+ }
228
+ },
229
+ "schemas": {
230
+ "ErrorResponse": {
231
+ "type": "object",
232
+ "required": ["timestamp", "path", "status", "error", "message"],
233
+ "description": "Standard error response returned by the API when a request fails.",
234
+ "properties": {
235
+ "timestamp": {
236
+ "type": "string",
237
+ "format": "date-time",
238
+ "description": "Timestamp of the error."
239
+ },
240
+ "path": {
241
+ "type": "string",
242
+ "description": "Request path that triggered the error."
243
+ },
244
+ "status": {
245
+ "type": "integer",
246
+ "description": "HTTP status code."
247
+ },
248
+ "error": {
249
+ "type": "string",
250
+ "description": "Error type."
251
+ },
252
+ "message": {
253
+ "type": "string",
254
+ "description": "Human-readable error message."
255
+ }
256
+ }
257
+ },
258
+ "ReverseDnsResponse": {
259
+ "type": "object",
260
+ "required": [
261
+ "totalRecords",
262
+ "totalPages",
263
+ "currentPage",
264
+ "reverseDnsRecords"
265
+ ],
266
+ "description": "Paginated response containing all domain records matching the reverse DNS query.",
267
+ "properties": {
268
+ "totalRecords": {
269
+ "type": "integer",
270
+ "description": "Total number of domain records matching the reverse DNS query."
271
+ },
272
+ "totalPages": {
273
+ "type": "integer",
274
+ "description": "Total number of pages available."
275
+ },
276
+ "currentPage": {
277
+ "type": "integer",
278
+ "description": "Current page number in the paginated result."
279
+ },
280
+ "reverseDnsRecords": {
281
+ "type": "array",
282
+ "description": "Array of matching domain records, each containing dated DNS snapshots.",
283
+ "items": {
284
+ "$ref": "#/components/schemas/ReverseDnsRecord"
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "ReverseDnsRecord": {
290
+ "type": "object",
291
+ "description": "A single domain record matched by the reverse DNS query, with its DNS snapshot data.",
292
+ "required": ["queryTime", "domainName", "dnsTypes", "dnsRecords"],
293
+ "properties": {
294
+ "queryTime": {
295
+ "type": "string",
296
+ "format": "date",
297
+ "description": "Date when the DNS snapshot was taken (YYYY-MM-DD)."
298
+ },
299
+ "domainName": {
300
+ "type": "string",
301
+ "description": "Matched domain name."
302
+ },
303
+ "domainRegistered": {
304
+ "type": "boolean",
305
+ "description": "Indicates whether the domain is registered."
306
+ },
307
+ "dnsTypes": {
308
+ "$ref": "#/components/schemas/DnsTypes"
309
+ },
310
+ "dnsRecords": {
311
+ "type": "array",
312
+ "description": "Array of DNS records for this domain on this date. Field presence varies by dnsType — see DnsRecord for which fields apply to which type.",
313
+ "items": {
314
+ "$ref": "#/components/schemas/DnsRecord"
315
+ }
316
+ }
317
+ }
318
+ },
319
+ "DnsTypes": {
320
+ "type": "object",
321
+ "description": "Map of each DNS record type present in dnsRecords to its IANA DNS resource record type code (e.g. A: 1, AAAA: 28, CNAME: 5, MX: 15, NS: 2, SOA: 6, TXT: 16, SPF: 99). Indicates which record types were found for this domain, not how many of each — count entries in dnsRecords for that.",
322
+ "additionalProperties": {
323
+ "title": "DnsTypeCode",
324
+ "type": "integer",
325
+ "description": "IANA DNS resource record type code for this DNS record type (A: 1, AAAA: 28, CNAME: 5, MX: 15, NS: 2, SOA: 6, TXT: 16, SPF: 99)."
326
+ }
327
+ },
328
+ "DnsRecord": {
329
+ "type": "object",
330
+ "description": "A single DNS resource record. name, type, dnsType, ttl, rawText, and rRsetType are always present; every other field is populated only for the dnsType(s) noted in its description.",
331
+ "required": ["name", "type", "dnsType", "ttl", "rawText", "rRsetType"],
332
+ "properties": {
333
+ "name": {
334
+ "type": "string",
335
+ "description": "Name of the queried domain."
336
+ },
337
+ "type": {
338
+ "type": "integer",
339
+ "description": "DNS type code (1=A, 28=AAAA, 5=CNAME, 15=MX, 2=NS, 6=SOA, 16=TXT, 99=SPF)."
340
+ },
341
+ "dnsType": {
342
+ "type": "string",
343
+ "enum": ["A", "AAAA", "CNAME", "MX", "NS", "SOA", "TXT", "SPF"],
344
+ "description": "DNS record type as a string."
345
+ },
346
+ "ttl": {
347
+ "type": "integer",
348
+ "description": "Time to live in seconds."
349
+ },
350
+ "rawText": {
351
+ "type": "string",
352
+ "description": "Raw (un-parsed) DNS record text."
353
+ },
354
+ "rRsetType": {
355
+ "type": "integer",
356
+ "description": "Resource record set type code."
357
+ },
358
+ "address": {
359
+ "type": "string",
360
+ "description": "IPv4 or IPv6 address. Present only when dnsType is A or AAAA."
361
+ },
362
+ "target": {
363
+ "type": "string",
364
+ "description": "Target hostname. Present only when dnsType is CNAME or MX."
365
+ },
366
+ "priority": {
367
+ "type": "integer",
368
+ "description": "Mail server priority. Present only when dnsType is MX."
369
+ },
370
+ "singleName": {
371
+ "type": "string",
372
+ "description": "Authoritative name server. Present only when dnsType is NS."
373
+ },
374
+ "admin": {
375
+ "type": "string",
376
+ "description": "Administrative contact email. Present only when dnsType is SOA."
377
+ },
378
+ "host": {
379
+ "type": "string",
380
+ "description": "Primary name server. Present only when dnsType is SOA."
381
+ },
382
+ "expire": {
383
+ "type": "integer",
384
+ "description": "Expiry time in seconds. Present only when dnsType is SOA."
385
+ },
386
+ "minimum": {
387
+ "type": "integer",
388
+ "description": "Minimum TTL in seconds. Present only when dnsType is SOA."
389
+ },
390
+ "refresh": {
391
+ "type": "integer",
392
+ "description": "Refresh interval in seconds. Present only when dnsType is SOA."
393
+ },
394
+ "retry": {
395
+ "type": "integer",
396
+ "description": "Retry interval in seconds. Present only when dnsType is SOA."
397
+ },
398
+ "serial": {
399
+ "type": "integer",
400
+ "description": "Serial number. Present only when dnsType is SOA."
401
+ },
402
+ "strings": {
403
+ "type": "array",
404
+ "description": "Verification or policy strings. Present only when dnsType is TXT or SPF.",
405
+ "items": {
406
+ "type": "string"
407
+ }
408
+ }
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "security": [{ "ApiKeyAuthHeader": [] }, { "ApiKeyAuthQuery": [] }]
414
+ }