@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,466 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "DNS Lookup API - Live DNS Records, TTLs & PTR Lookups for Any Hostname",
5
+ "version": "1.0.0",
6
+ "description": "Performs a live DNS lookup for any hostname or IP address, returning real-time records from authoritative name servers. Supports A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME record types, plus PTR records when querying by IP address via the ipAddress parameter. Each record object includes parsed fields such as address, target, priority, TTL, serial, or verification strings, depending on the record type. Pass a comma-separated list of record types with the type parameter, or use 'all' to retrieve every supported type. The optional format parameter allows switching between JSON and XML output.",
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": "DNS Lookup API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/domain/dns/live": {
21
+ "get": {
22
+ "tags": ["DNS APIs"],
23
+ "summary": "Perform a live DNS lookup for any hostname or IP address",
24
+ "description": "Retrieve real-time DNS records for any hostname or IP address. Returns A, AAAA, MX, NS, SOA, SPF, TXT, CNAME, and PTR records with full parsed fields.",
25
+ "operationId": "dnsLookup",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "schema": {
32
+ "type": "string",
33
+ "enum": ["json", "xml"],
34
+ "default": "json"
35
+ },
36
+ "description": "Format of the response."
37
+ },
38
+ {
39
+ "name": "host-name",
40
+ "in": "query",
41
+ "required": true,
42
+ "schema": {
43
+ "type": "string"
44
+ },
45
+ "description": "Hostname or URL whose DNS records are required."
46
+ },
47
+ {
48
+ "name": "ipAddress",
49
+ "in": "query",
50
+ "required": false,
51
+ "schema": {
52
+ "type": "string"
53
+ },
54
+ "description": "The IP address for requested DNS's PTR record. 'type' parameter must be set to 'all'."
55
+ },
56
+ {
57
+ "name": "type",
58
+ "in": "query",
59
+ "required": true,
60
+ "schema": {
61
+ "type": "string",
62
+ "enum": [
63
+ "A",
64
+ "AAAA",
65
+ "MX",
66
+ "NS",
67
+ "SOA",
68
+ "SPF",
69
+ "TXT",
70
+ "CNAME",
71
+ "all"
72
+ ]
73
+ },
74
+ "description": "A comma-separated list of DNS record types for lookup. Possible values: A, AAAA, MX, NS, SOA, SPF, TXT, CNAME, or all. When ipAddress is provided, type must be \"all\"."
75
+ }
76
+ ],
77
+ "responses": {
78
+ "200": {
79
+ "description": "Successful DNS lookup response",
80
+ "content": {
81
+ "application/json": {
82
+ "schema": {
83
+ "$ref": "#/components/schemas/DNSLookupResponse"
84
+ },
85
+ "examples": {
86
+ "default": {
87
+ "value": {
88
+ "status": true,
89
+ "queryTime": "2026-06-06 10:43:05",
90
+ "domainName": "example.com",
91
+ "domainRegistered": true,
92
+ "dnsTypes": {
93
+ "A": 1,
94
+ "NS": 2,
95
+ "SOA": 6,
96
+ "MX": 15,
97
+ "TXT": 16,
98
+ "AAAA": 28,
99
+ "SPF": 99
100
+ },
101
+ "dnsRecords": [
102
+ {
103
+ "name": "example.com",
104
+ "type": 1,
105
+ "dnsType": "A",
106
+ "ttl": 300,
107
+ "rawText": "example.com.\t\t300\tIN\tA\t104.20.23.154",
108
+ "rRsetType": 1,
109
+ "address": "104.20.23.154"
110
+ },
111
+ {
112
+ "name": "example.com",
113
+ "type": 1,
114
+ "dnsType": "A",
115
+ "ttl": 300,
116
+ "rawText": "example.com.\t\t300\tIN\tA\t172.66.147.243",
117
+ "rRsetType": 1,
118
+ "address": "172.66.147.243"
119
+ },
120
+ {
121
+ "name": "example.com",
122
+ "type": 2,
123
+ "dnsType": "NS",
124
+ "ttl": 21600,
125
+ "rawText": "example.com.\t\t21600\tIN\tNS\telliott.ns.cloudflare.com.",
126
+ "rRsetType": 2,
127
+ "singleName": "elliott.ns.cloudflare.com."
128
+ },
129
+ {
130
+ "name": "example.com",
131
+ "type": 2,
132
+ "dnsType": "NS",
133
+ "ttl": 21600,
134
+ "rawText": "example.com.\t\t21600\tIN\tNS\thera.ns.cloudflare.com.",
135
+ "rRsetType": 2,
136
+ "singleName": "hera.ns.cloudflare.com."
137
+ },
138
+ {
139
+ "name": "example.com",
140
+ "type": 6,
141
+ "dnsType": "SOA",
142
+ "ttl": 1800,
143
+ "rawText": "example.com.\t\t1800\tIN\tSOA\telliott.ns.cloudflare.com. dns.cloudflare.com. 2405749864 10000 2400 604800 1800",
144
+ "rRsetType": 6,
145
+ "admin": "dns.cloudflare.com.",
146
+ "host": "elliott.ns.cloudflare.com.",
147
+ "expire": 604800,
148
+ "minimum": 1800,
149
+ "refresh": 10000,
150
+ "retry": 2400,
151
+ "serial": 2405749864
152
+ },
153
+ {
154
+ "name": "example.com",
155
+ "type": 15,
156
+ "dnsType": "MX",
157
+ "ttl": 236,
158
+ "rawText": "example.com.\t\t236\tIN\tMX\t0 .",
159
+ "rRsetType": 15,
160
+ "target": ".",
161
+ "priority": 0
162
+ },
163
+ {
164
+ "name": "example.com",
165
+ "type": 16,
166
+ "dnsType": "TXT",
167
+ "ttl": 300,
168
+ "rawText": "example.com.\t\t300\tIN\tTXT\t\"_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9\"",
169
+ "rRsetType": 16,
170
+ "strings": ["_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"]
171
+ },
172
+ {
173
+ "name": "example.com",
174
+ "type": 28,
175
+ "dnsType": "AAAA",
176
+ "ttl": 300,
177
+ "rawText": "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:ac42:93f3",
178
+ "rRsetType": 28,
179
+ "address": "2606:4700:10:0:0:0:ac42:93f3"
180
+ },
181
+ {
182
+ "name": "example.com",
183
+ "type": 28,
184
+ "dnsType": "AAAA",
185
+ "ttl": 300,
186
+ "rawText": "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:6814:179a",
187
+ "rRsetType": 28,
188
+ "address": "2606:4700:10:0:0:0:6814:179a"
189
+ },
190
+ {
191
+ "name": "example.com",
192
+ "type": 99,
193
+ "dnsType": "SPF",
194
+ "ttl": 300,
195
+ "rawText": "example.com.\t\t300\tIN\tSPF\t\"v=spf1 -all\"",
196
+ "rRsetType": 99,
197
+ "strings": ["v=spf1 -all"]
198
+ }
199
+ ]
200
+ }
201
+ },
202
+ "ptrLookup": {
203
+ "summary": "PTR lookup via ipAddress",
204
+ "value": {
205
+ "status": true,
206
+ "queryTime": "2026-07-23 09:51:24",
207
+ "ipAddress": "8.8.8.8",
208
+ "dnsTypes": {
209
+ "PTR": 12
210
+ },
211
+ "dnsRecords": [
212
+ {
213
+ "name": "8.8.8.8.in-addr.arpa",
214
+ "type": 12,
215
+ "dnsType": "PTR",
216
+ "ttl": 16954,
217
+ "rawText": "8.8.8.8.in-addr.arpa.\t16954\tIN\tPTR\tdns.google.",
218
+ "rRsetType": 12,
219
+ "singleName": "dns.google."
220
+ }
221
+ ]
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ },
228
+ "400": {
229
+ "description": "Bad Request — Missing or invalid parameters",
230
+ "content": {
231
+ "application/json": {
232
+ "schema": {
233
+ "$ref": "#/components/schemas/ErrorResponse"
234
+ },
235
+ "examples": {
236
+ "missingParams": {
237
+ "summary": "Missing required parameter",
238
+ "value": {
239
+ "error": "Invalid Param Exception",
240
+ "message": "please pass correct parameters",
241
+ "path": "/v1.0/domain/dns/live",
242
+ "status": 400,
243
+ "timestamp": "2026-07-23T09:50:58.722Z"
244
+ }
245
+ },
246
+ "invalidType": {
247
+ "summary": "Unsupported DNS record type",
248
+ "value": {
249
+ "timestamp": "2026-07-23T09:51:08.447Z",
250
+ "status": 400,
251
+ "error": "Invalid Param Exception",
252
+ "message": "Please provide correct dns records type(s) [For Technical Support: support@whoisfreaks.com]",
253
+ "path": "/v2.0/dns/live"
254
+ }
255
+ },
256
+ "malformedHostname": {
257
+ "summary": "Hostname missing a valid TLD",
258
+ "value": {
259
+ "timestamp": "2026-07-23T09:54:13.140Z",
260
+ "status": 400,
261
+ "error": "Invalid Param Exception",
262
+ "message": "Please pass domain param correct value[For Technical Support: support@whoisfreaks.com]",
263
+ "path": "/v2.0/dns/live"
264
+ }
265
+ }
266
+ }
267
+ }
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ },
274
+ "components": {
275
+ "securitySchemes": {
276
+ "ApiKeyAuthHeader": {
277
+ "type": "apiKey",
278
+ "in": "header",
279
+ "name": "X-apiKey",
280
+ "description": "Pass your API key via the X-apiKey request header."
281
+ },
282
+ "ApiKeyAuthQuery": {
283
+ "type": "apiKey",
284
+ "in": "query",
285
+ "name": "apiKey",
286
+ "description": "Pass your API key via the apiKey query parameter."
287
+ }
288
+ },
289
+ "schemas": {
290
+ "DNSLookupResponse": {
291
+ "type": "object",
292
+ "required": ["status", "queryTime", "dnsTypes", "dnsRecords"],
293
+ "properties": {
294
+ "status": {
295
+ "type": "boolean",
296
+ "description": "Indicates whether the query was processed successfully."
297
+ },
298
+ "queryTime": {
299
+ "type": "string",
300
+ "format": "date-time",
301
+ "description": "Time at which the query was made (Format:YYYY-MM-DD HH:mm:ss)."
302
+ },
303
+ "domainName": {
304
+ "type": "string",
305
+ "description": "Queried domain name."
306
+ },
307
+ "domainRegistered": {
308
+ "type": "boolean",
309
+ "description": "Indicates whether the domain is registered."
310
+ },
311
+ "ipAddress": {
312
+ "type": "string",
313
+ "description": "IP address queried (present when ipAddress parameter is used instead of host-name)."
314
+ },
315
+ "dnsTypes": {
316
+ "$ref": "#/components/schemas/DnsTypes"
317
+ },
318
+ "dnsRecords": {
319
+ "type": "array",
320
+ "description": "List of DNS records. Field presence varies by dnsType — see DnsRecord for which fields apply to which type.",
321
+ "items": {
322
+ "$ref": "#/components/schemas/DnsRecord"
323
+ }
324
+ }
325
+ }
326
+ },
327
+ "DnsTypes": {
328
+ "type": "object",
329
+ "description": "Map of each DNS record type present in dnsRecords to its IANA DNS resource record type code (e.g. A: 1, AAAA: 28, MX: 15, NS: 2, SOA: 6, TXT: 16, SPF: 99, PTR: 12). Indicates which record types were found, not how many of each — count entries in dnsRecords for that.",
330
+ "additionalProperties": {
331
+ "title": "DnsTypeCode",
332
+ "type": "integer",
333
+ "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, PTR: 12)."
334
+ }
335
+ },
336
+ "DnsRecord": {
337
+ "type": "object",
338
+ "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.",
339
+ "required": ["name", "type", "dnsType", "ttl", "rawText", "rRsetType"],
340
+ "properties": {
341
+ "name": {
342
+ "type": "string",
343
+ "description": "Name of the queried domain, or the reverse DNS name (e.g. '8.8.8.8.in-addr.arpa') for PTR records."
344
+ },
345
+ "type": {
346
+ "type": "integer",
347
+ "description": "DNS type code (1=A, 28=AAAA, 5=CNAME, 15=MX, 2=NS, 6=SOA, 16=TXT, 99=SPF, 12=PTR)."
348
+ },
349
+ "dnsType": {
350
+ "type": "string",
351
+ "enum": [
352
+ "A",
353
+ "AAAA",
354
+ "CNAME",
355
+ "MX",
356
+ "NS",
357
+ "SOA",
358
+ "TXT",
359
+ "SPF",
360
+ "PTR"
361
+ ],
362
+ "description": "DNS record type as a string."
363
+ },
364
+ "ttl": {
365
+ "type": "integer",
366
+ "description": "Time to live in seconds."
367
+ },
368
+ "rawText": {
369
+ "type": "string",
370
+ "description": "Raw (un-parsed) DNS record text."
371
+ },
372
+ "rRsetType": {
373
+ "type": "integer",
374
+ "description": "Resource record set type code."
375
+ },
376
+ "address": {
377
+ "type": "string",
378
+ "description": "IPv4 or IPv6 address. Present only when dnsType is A or AAAA."
379
+ },
380
+ "target": {
381
+ "type": "string",
382
+ "description": "Target hostname. Present only when dnsType is CNAME or MX."
383
+ },
384
+ "priority": {
385
+ "type": "integer",
386
+ "description": "Mail server priority. Present only when dnsType is MX."
387
+ },
388
+ "singleName": {
389
+ "type": "string",
390
+ "description": "Authoritative name server (NS) or reverse-resolved hostname (PTR). Present only when dnsType is NS or PTR."
391
+ },
392
+ "admin": {
393
+ "type": "string",
394
+ "description": "Administrative contact email. Present only when dnsType is SOA."
395
+ },
396
+ "host": {
397
+ "type": "string",
398
+ "description": "Primary name server. Present only when dnsType is SOA."
399
+ },
400
+ "expire": {
401
+ "type": "integer",
402
+ "description": "Expiry time in seconds. Present only when dnsType is SOA."
403
+ },
404
+ "minimum": {
405
+ "type": "integer",
406
+ "description": "Minimum TTL in seconds. Present only when dnsType is SOA."
407
+ },
408
+ "refresh": {
409
+ "type": "integer",
410
+ "description": "Refresh interval in seconds. Present only when dnsType is SOA."
411
+ },
412
+ "retry": {
413
+ "type": "integer",
414
+ "description": "Retry interval in seconds. Present only when dnsType is SOA."
415
+ },
416
+ "serial": {
417
+ "type": "integer",
418
+ "description": "Serial number. Present only when dnsType is SOA."
419
+ },
420
+ "strings": {
421
+ "type": "array",
422
+ "description": "Verification or policy strings. Present only when dnsType is TXT or SPF.",
423
+ "items": {
424
+ "type": "string"
425
+ }
426
+ }
427
+ }
428
+ },
429
+ "ErrorResponse": {
430
+ "type": "object",
431
+ "required": ["message"],
432
+ "properties": {
433
+ "error": {
434
+ "type": "string",
435
+ "description": "Short error category or exception type."
436
+ },
437
+ "message": {
438
+ "type": "string",
439
+ "description": "Human-readable error message describing the failure."
440
+ },
441
+ "path": {
442
+ "type": "string",
443
+ "description": "API endpoint path that produced the error."
444
+ },
445
+ "status": {
446
+ "type": "integer",
447
+ "description": "HTTP status code returned with the error."
448
+ },
449
+ "timestamp": {
450
+ "type": "string",
451
+ "format": "date-time",
452
+ "description": "Timestamp when the error occurred (ISO 8601)."
453
+ }
454
+ }
455
+ }
456
+ }
457
+ },
458
+ "security": [
459
+ {
460
+ "ApiKeyAuthHeader": []
461
+ },
462
+ {
463
+ "ApiKeyAuthQuery": []
464
+ }
465
+ ]
466
+ }