@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,316 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "IP Threat Intelligence API - VPN, Proxy & Tor Detection with Threat Scoring",
5
+ "version": "1.0.0",
6
+ "description": "Retrieve real-time threat intelligence and security signals for a single IPv4 or IPv6 address. Returns an aggregate `threat_score` (0-100) plus detection flags and provider names for VPNs, proxies (including residential proxies), Tor exit nodes, relays, known attackers, bots, spam sources, and cloud-provider ranges. Use `fields`/`excludes` with dot notation (e.g. `security.threat_score`) to trim the response to only the modules you need. If `ip` is omitted, the API returns threat data for the public IP of the requesting client. Bogon and reserved IP addresses return a `423` error, and malformed IP input returns a `400` error, instead of partial data.",
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": "IP Threat Intelligence API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/ip/security": {
21
+ "get": {
22
+ "tags": ["IP Geolocation APIs"],
23
+ "summary": "Retrieve real-time threat intelligence and security signals for an IPv4 or IPv6 address",
24
+ "description": "Get a threat score along with VPN, proxy, Tor, relay, bot, spam, known-attacker, and cloud-provider detection flags for an IP address.",
25
+ "operationId": "ipSecurityLookup",
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": "ip",
40
+ "in": "query",
41
+ "required": false,
42
+ "description": "IPv4 or IPv6 address to check for threat intelligence and security signals. If omitted, the public IP of the requesting client is used.",
43
+ "schema": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ {
48
+ "name": "fields",
49
+ "in": "query",
50
+ "required": false,
51
+ "description": "Comma-separated list of fields to return. Supports dot notation (e.g. `security.threat_score`).",
52
+ "schema": {
53
+ "type": "string"
54
+ }
55
+ },
56
+ {
57
+ "name": "excludes",
58
+ "in": "query",
59
+ "required": false,
60
+ "description": "Comma-separated list of fields to remove from the response. Supports dot notation (e.g. `security.is_tor`). The `ip` field is always included and cannot be excluded.",
61
+ "schema": {
62
+ "type": "string"
63
+ }
64
+ }
65
+ ],
66
+ "responses": {
67
+ "200": {
68
+ "description": "Successful threat intelligence response",
69
+ "content": {
70
+ "application/json": {
71
+ "schema": {
72
+ "$ref": "#/components/schemas/IpSecurityResponse"
73
+ },
74
+ "examples": {
75
+ "typicalSuccess": {
76
+ "summary": "Typical successful response",
77
+ "value": {
78
+ "ip": "8.8.8.8",
79
+ "security": {
80
+ "threat_score": 5,
81
+ "is_tor": false,
82
+ "is_proxy": false,
83
+ "proxy_provider_names": [],
84
+ "proxy_confidence_score": 0,
85
+ "proxy_last_seen": "",
86
+ "is_residential_proxy": false,
87
+ "is_vpn": false,
88
+ "vpn_provider_names": [],
89
+ "vpn_confidence_score": 0,
90
+ "vpn_last_seen": "",
91
+ "is_relay": false,
92
+ "relay_provider_name": "",
93
+ "is_anonymous": false,
94
+ "is_known_attacker": false,
95
+ "is_bot": false,
96
+ "is_spam": false,
97
+ "is_cloud_provider": true,
98
+ "cloud_provider_name": "Google LLC"
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ },
106
+ "400": {
107
+ "description": "Bad Request — Invalid or missing IP address",
108
+ "content": {
109
+ "application/json": {
110
+ "schema": {
111
+ "$ref": "#/components/schemas/ErrorResponse"
112
+ },
113
+ "examples": {
114
+ "invalidIp": {
115
+ "summary": "Malformed IP address",
116
+ "value": {
117
+ "message": "Provided IP address 'invalid' is not valid"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ },
124
+ "423": {
125
+ "description": "Locked — Bogon or reserved IP address",
126
+ "content": {
127
+ "application/json": {
128
+ "schema": {
129
+ "$ref": "#/components/schemas/ErrorResponse"
130
+ },
131
+ "examples": {
132
+ "locked": {
133
+ "summary": "Bogon or reserved IP address",
134
+ "value": {
135
+ "message": "'10.0.0.1' is a bogon IP address."
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ },
146
+ "components": {
147
+ "securitySchemes": {
148
+ "ApiKeyAuthHeader": {
149
+ "type": "apiKey",
150
+ "in": "header",
151
+ "name": "X-apiKey",
152
+ "description": "Pass your API key via the X-apiKey request header."
153
+ },
154
+ "ApiKeyAuthQuery": {
155
+ "type": "apiKey",
156
+ "in": "query",
157
+ "name": "apiKey",
158
+ "description": "Pass your API key via the apiKey query parameter."
159
+ }
160
+ },
161
+ "schemas": {
162
+ "ErrorResponse": {
163
+ "type": "object",
164
+ "required": ["message"],
165
+ "properties": {
166
+ "error": {
167
+ "type": "string",
168
+ "description": "Short error category or exception type."
169
+ },
170
+ "message": {
171
+ "type": "string",
172
+ "description": "Human-readable error message describing the failure."
173
+ },
174
+ "path": {
175
+ "type": "string",
176
+ "description": "API endpoint path that produced the error."
177
+ },
178
+ "status": {
179
+ "type": "integer",
180
+ "description": "HTTP status code returned with the error."
181
+ },
182
+ "timestamp": {
183
+ "type": "string",
184
+ "format": "date-time",
185
+ "description": "Timestamp when the error occurred (ISO 8601)."
186
+ }
187
+ }
188
+ },
189
+ "IpSecurityResponse": {
190
+ "type": "object",
191
+ "description": "Threat intelligence result for an IP address.",
192
+ "required": ["ip"],
193
+ "properties": {
194
+ "ip": {
195
+ "type": "string",
196
+ "description": "The IP address used for the lookup (IPv4 or IPv6)."
197
+ },
198
+ "security": {
199
+ "$ref": "#/components/schemas/Security"
200
+ }
201
+ }
202
+ },
203
+ "Security": {
204
+ "type": "object",
205
+ "description": "Threat intelligence and security information for the IP.",
206
+ "required": [
207
+ "threat_score",
208
+ "is_tor",
209
+ "is_proxy",
210
+ "proxy_confidence_score",
211
+ "is_residential_proxy",
212
+ "is_vpn",
213
+ "vpn_confidence_score",
214
+ "is_relay",
215
+ "is_anonymous",
216
+ "is_known_attacker",
217
+ "is_bot",
218
+ "is_spam",
219
+ "is_cloud_provider"
220
+ ],
221
+ "properties": {
222
+ "threat_score": {
223
+ "type": "number",
224
+ "description": "Aggregate risk score from 0 to 100."
225
+ },
226
+ "is_tor": {
227
+ "type": "boolean",
228
+ "description": "true if the IP matches a Tor exit node."
229
+ },
230
+ "is_proxy": {
231
+ "type": "boolean",
232
+ "description": "true if the IP is associated with a proxy service."
233
+ },
234
+ "proxy_provider_names": {
235
+ "type": "array",
236
+ "items": {
237
+ "type": "string"
238
+ },
239
+ "description": "Detected proxy provider names."
240
+ },
241
+ "proxy_confidence_score": {
242
+ "type": "number",
243
+ "description": "Proxy detection confidence from 0 to 100."
244
+ },
245
+ "proxy_last_seen": {
246
+ "type": "string",
247
+ "description": "Last observed proxy activity date in YYYY-MM-DD."
248
+ },
249
+ "is_residential_proxy": {
250
+ "type": "boolean",
251
+ "description": "true if the IP is linked to a residential proxy network."
252
+ },
253
+ "is_vpn": {
254
+ "type": "boolean",
255
+ "description": "true if the IP is associated with a VPN service."
256
+ },
257
+ "vpn_provider_names": {
258
+ "type": "array",
259
+ "items": {
260
+ "type": "string"
261
+ },
262
+ "description": "Detected VPN provider names."
263
+ },
264
+ "vpn_confidence_score": {
265
+ "type": "number",
266
+ "description": "VPN detection confidence from 0 to 100."
267
+ },
268
+ "vpn_last_seen": {
269
+ "type": "string",
270
+ "description": "Last observed VPN activity date in YYYY-MM-DD."
271
+ },
272
+ "is_relay": {
273
+ "type": "boolean",
274
+ "description": "true if the IP is associated with a relay network."
275
+ },
276
+ "relay_provider_name": {
277
+ "type": "string",
278
+ "description": "Relay provider name."
279
+ },
280
+ "is_anonymous": {
281
+ "type": "boolean",
282
+ "description": "true if any anonymity signal is present."
283
+ },
284
+ "is_known_attacker": {
285
+ "type": "boolean",
286
+ "description": "true if the IP is flagged for known attacker behavior."
287
+ },
288
+ "is_bot": {
289
+ "type": "boolean",
290
+ "description": "true if the IP is associated with bot activity."
291
+ },
292
+ "is_spam": {
293
+ "type": "boolean",
294
+ "description": "true if the IP is associated with spam activity."
295
+ },
296
+ "is_cloud_provider": {
297
+ "type": "boolean",
298
+ "description": "true if the IP belongs to a cloud provider range."
299
+ },
300
+ "cloud_provider_name": {
301
+ "type": "string",
302
+ "description": "Cloud provider name."
303
+ }
304
+ }
305
+ }
306
+ }
307
+ },
308
+ "security": [
309
+ {
310
+ "ApiKeyAuthHeader": []
311
+ },
312
+ {
313
+ "ApiKeyAuthQuery": []
314
+ }
315
+ ]
316
+ }