@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,284 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Bulk Domain Checker API - Search Multiple Domains at Once",
5
+ "version": "1.0.0",
6
+ "description": "Check the availability of up to 100 domains in a single POST request. Uses DNS-based or WHOIS-based lookups to determine domain availability. Returns an array of results with domain name, availability status, and a per-item processing flag. Domains that fail to resolve are still returned with status false and no domainAvailability field, rather than as a separate error object — such a batch returns 206 Partial Success, and result order is not guaranteed to match the request order.",
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": "Bulk Domain Checker API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/domain/availability": {
21
+ "post": {
22
+ "tags": ["Domain APIs"],
23
+ "summary": "Check the availability of multiple domains in a single request.",
24
+ "description": "Perform Bulk Domain Availability checks using a list of domains. Supports upto `100 Domains Per Request`.",
25
+ "operationId": "checkBulkDomainAvailability",
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": "source",
40
+ "in": "query",
41
+ "required": false,
42
+ "schema": {
43
+ "type": "string",
44
+ "enum": ["dns", "whois"],
45
+ "default": "dns"
46
+ },
47
+ "description": "Specify the data source for domain availability checks. Use \"dns\" for DNS-based lookups or \"whois\" for WHOIS-based lookups. By default, \"dns\" is used."
48
+ }
49
+ ],
50
+ "requestBody": {
51
+ "required": true,
52
+ "content": {
53
+ "application/json": {
54
+ "schema": {
55
+ "$ref": "#/components/schemas/BulkDomainCheckRequest"
56
+ },
57
+ "examples": {
58
+ "typicalRequest": {
59
+ "summary": "Typical bulk domain check request",
60
+ "value": {
61
+ "domainNames": [
62
+ "google.com",
63
+ "example.com",
64
+ "techguruss.com"
65
+ ]
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "responses": {
73
+ "200": {
74
+ "description": "Successful response — every domain in the batch resolved.",
75
+ "content": {
76
+ "application/json": {
77
+ "schema": {
78
+ "$ref": "#/components/schemas/BulkDomainCheckResponse"
79
+ },
80
+ "examples": {
81
+ "typicalSuccess": {
82
+ "summary": "All domains resolved",
83
+ "value": {
84
+ "bulk_domain_availability_response": [
85
+ {
86
+ "domain": "google.com",
87
+ "domainAvailability": false,
88
+ "status": true
89
+ },
90
+ {
91
+ "domain": "thisdomainisdefinitelyavailablexyz123abc.com",
92
+ "domainAvailability": true,
93
+ "status": true
94
+ }
95
+ ]
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "206": {
103
+ "description": "Partial Success — one or more domains in the batch failed to resolve. Failed entries have status false and no domainAvailability field. Even a batch where every domain fails still returns 206, not an error status.",
104
+ "content": {
105
+ "application/json": {
106
+ "schema": {
107
+ "$ref": "#/components/schemas/BulkDomainCheckResponse"
108
+ },
109
+ "examples": {
110
+ "partialFailure": {
111
+ "summary": "Mix of resolved and failed domains",
112
+ "value": {
113
+ "bulk_domain_availability_response": [
114
+ {
115
+ "domain": "notadomain",
116
+ "status": false
117
+ },
118
+ {
119
+ "domain": "google.com",
120
+ "domainAvailability": false,
121
+ "status": true
122
+ },
123
+ {
124
+ "domain": "test.an",
125
+ "status": false
126
+ }
127
+ ]
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "400": {
135
+ "description": "Bad Request — Missing or malformed request body",
136
+ "content": {
137
+ "application/json": {
138
+ "schema": {
139
+ "$ref": "#/components/schemas/ErrorResponse"
140
+ },
141
+ "examples": {
142
+ "invalidBody": {
143
+ "summary": "domainNames field missing or malformed",
144
+ "value": {
145
+ "error": "Invalid request body Exception",
146
+ "message": "Please provide data in required format in request body",
147
+ "path": "/v1.0/domain/availability",
148
+ "status": 400,
149
+ "timestamp": "2026-07-27T12:23:33.394Z"
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "413": {
157
+ "description": "Payload Too Large — Request body exceeds the size limit",
158
+ "content": {
159
+ "application/json": {
160
+ "schema": {
161
+ "$ref": "#/components/schemas/ErrorResponse"
162
+ },
163
+ "examples": {
164
+ "payloadTooLarge": {
165
+ "summary": "Too many domains / body too large",
166
+ "value": {
167
+ "error": "Payload too large Exception",
168
+ "message": "Maximum request body size limit exceeded",
169
+ "path": "/v1.0/domain/availability",
170
+ "status": 413,
171
+ "timestamp": "2026-07-27T12:23:46.923Z"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ },
182
+ "components": {
183
+ "securitySchemes": {
184
+ "ApiKeyAuthHeader": {
185
+ "type": "apiKey",
186
+ "in": "header",
187
+ "name": "X-apiKey",
188
+ "description": "Pass your API key via the X-apiKey request header."
189
+ },
190
+ "ApiKeyAuthQuery": {
191
+ "type": "apiKey",
192
+ "in": "query",
193
+ "name": "apiKey",
194
+ "description": "Pass your API key via the apiKey query parameter."
195
+ }
196
+ },
197
+ "schemas": {
198
+ "BulkDomainCheckRequest": {
199
+ "type": "object",
200
+ "description": "Request body for bulk domain availability check.",
201
+ "required": ["domainNames"],
202
+ "properties": {
203
+ "domainNames": {
204
+ "type": "array",
205
+ "description": "List of domain names to check. Maximum 100 domains per request.",
206
+ "maxItems": 100,
207
+ "items": {
208
+ "type": "string"
209
+ }
210
+ }
211
+ }
212
+ },
213
+ "BulkDomainCheckResponse": {
214
+ "type": "object",
215
+ "description": "Wrapper containing the per-domain results array.",
216
+ "required": ["bulk_domain_availability_response"],
217
+ "properties": {
218
+ "bulk_domain_availability_response": {
219
+ "type": "array",
220
+ "description": "Array of per-domain results. Order is not guaranteed to match the request order. Domains that fail to resolve appear with status false and no domainAvailability field.",
221
+ "items": {
222
+ "$ref": "#/components/schemas/BulkDomainCheckItem"
223
+ }
224
+ }
225
+ }
226
+ },
227
+ "BulkDomainCheckItem": {
228
+ "type": "object",
229
+ "description": "Result for a single domain in a bulk check. domainAvailability is present only when status is true.",
230
+ "required": ["domain", "status"],
231
+ "properties": {
232
+ "domain": {
233
+ "type": "string",
234
+ "description": "Name of the queried domain."
235
+ },
236
+ "domainAvailability": {
237
+ "type": "boolean",
238
+ "description": "True if available, false if not available. Absent when this domain failed to resolve (status false)."
239
+ },
240
+ "status": {
241
+ "type": "boolean",
242
+ "description": "Whether this domain was successfully processed."
243
+ }
244
+ }
245
+ },
246
+ "ErrorResponse": {
247
+ "type": "object",
248
+ "description": "Standard error envelope returned by the API on failed requests.",
249
+ "required": ["message"],
250
+ "properties": {
251
+ "error": {
252
+ "type": "string",
253
+ "description": "Short error category or exception type."
254
+ },
255
+ "message": {
256
+ "type": "string",
257
+ "description": "Human-readable error message describing the failure."
258
+ },
259
+ "path": {
260
+ "type": "string",
261
+ "description": "API endpoint path that produced the error."
262
+ },
263
+ "status": {
264
+ "type": "integer",
265
+ "description": "HTTP status code returned with the error."
266
+ },
267
+ "timestamp": {
268
+ "type": "string",
269
+ "format": "date-time",
270
+ "description": "Timestamp when the error occurred (ISO 8601)."
271
+ }
272
+ }
273
+ }
274
+ }
275
+ },
276
+ "security": [
277
+ {
278
+ "ApiKeyAuthHeader": []
279
+ },
280
+ {
281
+ "ApiKeyAuthQuery": []
282
+ }
283
+ ]
284
+ }
@@ -0,0 +1,280 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Domain Search with Suggestions API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Check domain availability and receive suggestions for related domains across all top-level domains (TLDs). Supports optional suggestion parameters including a boolean flag to enable suggestions and a count parameter to control the number of results. Uses DNS-based or WHOIS-based lookups to determine domain availability for each suggestion.",
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": "Domain Search with Suggestions API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/domain/availability/suggestions": {
21
+ "get": {
22
+ "tags": ["Domain APIs"],
23
+ "summary": "Check domain availability and receive suggestions for related domains.",
24
+ "description": "The Domain Search API is designed to simplify the process of finding available domain names across all top-level domains (TLDs) and second-level domains (SLDs).",
25
+ "parameters": [
26
+ {
27
+ "name": "format",
28
+ "in": "query",
29
+ "required": false,
30
+ "schema": {
31
+ "type": "string",
32
+ "enum": ["json", "xml"],
33
+ "default": "json"
34
+ },
35
+ "description": "Format of the response."
36
+ },
37
+ {
38
+ "name": "domain",
39
+ "in": "query",
40
+ "required": true,
41
+ "schema": {
42
+ "type": "string"
43
+ },
44
+ "description": "Domain name for availability and suggestions."
45
+ },
46
+ {
47
+ "name": "source",
48
+ "in": "query",
49
+ "required": false,
50
+ "schema": {
51
+ "type": "string",
52
+ "enum": ["dns", "whois"],
53
+ "default": "dns"
54
+ },
55
+ "description": "Specify the data source for domain availability checks. Use \"dns\" for DNS-based lookups or \"whois\" for WHOIS-based lookups. By default, \"dns\" is used."
56
+ },
57
+ {
58
+ "name": "sug",
59
+ "in": "query",
60
+ "required": false,
61
+ "schema": {
62
+ "type": "boolean"
63
+ },
64
+ "description": "Set to false to get a single availability result for exactly the given domain (same shape as the Domain Availability API), with no suggestions. Omitting this parameter, or setting it to true, returns an array of suggested alternate-TLD domains instead — despite the parameter's name, omitting it does not behave like false."
65
+ },
66
+ {
67
+ "name": "count",
68
+ "in": "query",
69
+ "required": false,
70
+ "schema": {
71
+ "type": "integer",
72
+ "default": 5
73
+ },
74
+ "description": "Requested number of suggestions. Observed behavior: the API returns at least 5 alternate-TLD suggestions regardless of a lower count value; recognizable/brandable domains can return more than requested, drawn from a larger suggestion pool."
75
+ }
76
+ ],
77
+ "responses": {
78
+ "200": {
79
+ "description": "Success. Shape depends on sug: false returns a single availability object; omitted or true returns an array of suggestions.",
80
+ "content": {
81
+ "application/json": {
82
+ "schema": {
83
+ "oneOf": [
84
+ {
85
+ "description": "Returned when sug=false — a single availability result for exactly the requested domain.",
86
+ "$ref": "#/components/schemas/DomainAvailabilityResponse"
87
+ },
88
+ {
89
+ "description": "Returned when sug is omitted or true — an array of suggested alternate-TLD domains with their availability.",
90
+ "$ref": "#/components/schemas/DomainSuggestionResponse"
91
+ }
92
+ ]
93
+ },
94
+ "examples": {
95
+ "suggestions": {
96
+ "summary": "sug omitted or true — array of suggestions",
97
+ "value": {
98
+ "domain_available_response": [
99
+ {
100
+ "domain": "acme.org",
101
+ "domainAvailability": false
102
+ },
103
+ {
104
+ "domain": "acme.dev",
105
+ "domainAvailability": false
106
+ },
107
+ {
108
+ "domain": "acme.net",
109
+ "domainAvailability": false
110
+ },
111
+ {
112
+ "domain": "acme.com",
113
+ "domainAvailability": false
114
+ },
115
+ {
116
+ "domain": "acme.info",
117
+ "domainAvailability": false
118
+ }
119
+ ]
120
+ }
121
+ },
122
+ "noSuggestions": {
123
+ "summary": "sug=false — single availability object, same shape as the Domain Availability API",
124
+ "value": {
125
+ "domain": "quixoticbramble77.com",
126
+ "domainAvailability": true
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ },
133
+ "400": {
134
+ "description": "Bad Request – Invalid domain parameter",
135
+ "content": {
136
+ "application/json": {
137
+ "schema": {
138
+ "$ref": "#/components/schemas/ErrorResponse"
139
+ },
140
+ "examples": {
141
+ "missingDomain": {
142
+ "summary": "Missing required domain parameter",
143
+ "value": {
144
+ "error": "Invalid Param Exception",
145
+ "message": "please pass correct parameters",
146
+ "path": "/v1.0/domain/availability/suggestions",
147
+ "status": 400,
148
+ "timestamp": "2026-07-27T12:19:46.594Z"
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ },
155
+ "408": {
156
+ "description": "Request Timeout – Unable to fetch WHOIS data",
157
+ "content": {
158
+ "application/json": {
159
+ "schema": {
160
+ "$ref": "#/components/schemas/ErrorResponse"
161
+ },
162
+ "examples": {
163
+ "error": {
164
+ "summary": "Error response",
165
+ "value": {
166
+ "timestamp": "2025-08-14T10:37:21.871Z",
167
+ "status": 408,
168
+ "error": "Request Timeout",
169
+ "message": "Unable to fetch whois data. Please try again. [For Technical Support email at: support@apifreaks.com]",
170
+ "path": "/v1.0/domain/availability/suggestions"
171
+ }
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
+ },
178
+ "operationId": "suggestDomainAvailability"
179
+ }
180
+ }
181
+ },
182
+ "components": {
183
+ "securitySchemes": {
184
+ "ApiKeyAuthHeader": {
185
+ "type": "apiKey",
186
+ "in": "header",
187
+ "name": "X-apiKey",
188
+ "description": "Pass your API key via the X-apiKey request header."
189
+ },
190
+ "ApiKeyAuthQuery": {
191
+ "type": "apiKey",
192
+ "in": "query",
193
+ "name": "apiKey",
194
+ "description": "Pass your API key via the apiKey query parameter."
195
+ }
196
+ },
197
+ "schemas": {
198
+ "DomainAvailabilityResponse": {
199
+ "type": "object",
200
+ "description": "Domain availability check response containing the domain name and availability status. Returned when sug=false.",
201
+ "required": ["domain", "domainAvailability"],
202
+ "properties": {
203
+ "domain": {
204
+ "type": "string",
205
+ "description": "Name of the queried domain."
206
+ },
207
+ "domainAvailability": {
208
+ "type": "boolean",
209
+ "description": "True if available, false if not available."
210
+ }
211
+ }
212
+ },
213
+ "DomainSuggestionResponse": {
214
+ "type": "object",
215
+ "required": ["domain_available_response"],
216
+ "properties": {
217
+ "domain_available_response": {
218
+ "type": "array",
219
+ "description": "List of domain availability objects.",
220
+ "items": {
221
+ "$ref": "#/components/schemas/DomainSuggestionItem"
222
+ }
223
+ }
224
+ },
225
+ "description": "Domain suggestion response containing a list of availability-suggestions."
226
+ },
227
+ "DomainSuggestionItem": {
228
+ "type": "object",
229
+ "description": "A single domain suggestion with availability status.",
230
+ "required": ["domain", "domainAvailability"],
231
+ "properties": {
232
+ "domain": {
233
+ "type": "string",
234
+ "description": "Name of the suggested domain."
235
+ },
236
+ "domainAvailability": {
237
+ "type": "boolean",
238
+ "description": "True if available, false if not available."
239
+ }
240
+ }
241
+ },
242
+ "ErrorResponse": {
243
+ "type": "object",
244
+ "description": "Standard error envelope returned by the API on failed requests.",
245
+ "required": ["message"],
246
+ "properties": {
247
+ "error": {
248
+ "type": "string",
249
+ "description": "Short error category or exception type."
250
+ },
251
+ "message": {
252
+ "type": "string",
253
+ "description": "Human-readable error message describing the failure."
254
+ },
255
+ "path": {
256
+ "type": "string",
257
+ "description": "API endpoint path that produced the error."
258
+ },
259
+ "status": {
260
+ "type": "integer",
261
+ "description": "HTTP status code returned with the error."
262
+ },
263
+ "timestamp": {
264
+ "type": "string",
265
+ "format": "date-time",
266
+ "description": "Timestamp when the error occurred (ISO 8601)."
267
+ }
268
+ }
269
+ }
270
+ }
271
+ },
272
+ "security": [
273
+ {
274
+ "ApiKeyAuthHeader": []
275
+ },
276
+ {
277
+ "ApiKeyAuthQuery": []
278
+ }
279
+ ]
280
+ }