@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,158 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Currency Historical Data Limits API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Retrieve the date range for which historical exchange rate data is available for each supported currency. Returns a map of currency codes to their availability period in YYYY-MM-DD to YYYY-MM-DD format. Covers fiat currencies, cryptocurrencies, and precious metals.",
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": "Currency Historical Data Limits API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/currency/historical/data/limits": {
21
+ "get": {
22
+ "tags": ["Currency APIs"],
23
+ "summary": "Get historical data availability limits",
24
+ "description": "Returns the date range when historical data is available for each currency.",
25
+ "operationId": "getHistoricalDataLimits",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "description": "Response format: `json` (default) or `xml`.",
32
+ "schema": {
33
+ "type": "string",
34
+ "enum": ["json", "xml"],
35
+ "default": "json"
36
+ }
37
+ }
38
+ ],
39
+ "responses": {
40
+ "200": {
41
+ "description": "Successful operation",
42
+ "content": {
43
+ "application/json": {
44
+ "schema": {
45
+ "$ref": "#/components/schemas/HistoricalDataLimitsResponse"
46
+ },
47
+ "examples": {
48
+ "success": {
49
+ "summary": "Successful response",
50
+ "value": {
51
+ "availabilityPeriod": {
52
+ "FJD": "1989-08-18 to 2026-07-27",
53
+ "SCR": "1998-07-31 to 2026-07-27",
54
+ "STPT": "2025-02-27 to 2025-05-28"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "406": {
63
+ "description": "Unsupported Media Type — format is not json or xml",
64
+ "content": {
65
+ "application/json": {
66
+ "schema": {
67
+ "$ref": "#/components/schemas/ErrorResponse"
68
+ },
69
+ "examples": {
70
+ "badFormat": {
71
+ "summary": "format value not supported",
72
+ "value": {
73
+ "error": "Unsupported Media Type",
74
+ "message": "The media type specified in the request is not supported. For more details, please refer to the API documentation.",
75
+ "path": "/v1.0/currency/historical/data/limits",
76
+ "status": 406,
77
+ "timestamp": "2026-07-27T12:14:01.189Z"
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ },
88
+ "components": {
89
+ "securitySchemes": {
90
+ "ApiKeyAuthHeader": {
91
+ "type": "apiKey",
92
+ "in": "header",
93
+ "name": "X-apiKey",
94
+ "description": "Pass your API key via the X-apiKey request header."
95
+ },
96
+ "ApiKeyAuthQuery": {
97
+ "type": "apiKey",
98
+ "in": "query",
99
+ "name": "apiKey",
100
+ "description": "Pass your API key via the apiKey query parameter."
101
+ }
102
+ },
103
+ "schemas": {
104
+ "HistoricalDataLimitsResponse": {
105
+ "type": "object",
106
+ "required": ["availabilityPeriod"],
107
+ "properties": {
108
+ "availabilityPeriod": {
109
+ "type": "object",
110
+ "description": "Map of currency codes to their historical data availability range. Each key is a currency code and the value is a date range string.",
111
+ "additionalProperties": {
112
+ "title": "AvailabilityPeriodString",
113
+ "type": "string",
114
+ "description": "Historical data availability date range in YYYY-MM-DD to YYYY-MM-DD format."
115
+ }
116
+ }
117
+ },
118
+ "description": "Historical data limits response containing the availability period map."
119
+ },
120
+ "ErrorResponse": {
121
+ "type": "object",
122
+ "description": "Standard error envelope returned by the API on failed requests.",
123
+ "required": ["message"],
124
+ "properties": {
125
+ "error": {
126
+ "type": "string",
127
+ "description": "Short error category or exception type."
128
+ },
129
+ "message": {
130
+ "type": "string",
131
+ "description": "Human-readable error message describing the failure."
132
+ },
133
+ "path": {
134
+ "type": "string",
135
+ "description": "API endpoint path that produced the error."
136
+ },
137
+ "status": {
138
+ "type": "integer",
139
+ "description": "HTTP status code returned with the error."
140
+ },
141
+ "timestamp": {
142
+ "type": "string",
143
+ "format": "date-time",
144
+ "description": "Timestamp when the error occurred (ISO 8601)."
145
+ }
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "security": [
151
+ {
152
+ "ApiKeyAuthHeader": []
153
+ },
154
+ {
155
+ "ApiKeyAuthQuery": []
156
+ }
157
+ ]
158
+ }
@@ -0,0 +1,229 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Exchange Rate API - Real-Time Forex & Crypto Rates for 1,000+ Assets",
5
+ "version": "1.0.0",
6
+ "description": "Get the latest exchange rates for any base currency. Returns rates for all available currencies or a filtered set of symbols. Supports fiat, crypto, and metals. Accepts an optional updates parameter for rate freshness (1m, 10m, 1h, 1d). Returns a 400 error for invalid parameters and a 404 error for unsupported currencies or symbols.",
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": "Exchange Rate API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/currency/rates/latest": {
21
+ "get": {
22
+ "tags": ["Currency APIs"],
23
+ "summary": "Get the latest exchange rates",
24
+ "description": "Returns the latest exchange rates for the requested base currency and symbols.",
25
+ "operationId": "getLatestExchangeRates",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "description": "Response format: `json` (default) or `xml`.",
32
+ "schema": {
33
+ "type": "string",
34
+ "enum": ["json", "xml"],
35
+ "default": "json"
36
+ }
37
+ },
38
+ {
39
+ "name": "base",
40
+ "in": "query",
41
+ "required": false,
42
+ "description": "Base currency code. Defaults to `USD`. Supports fiat, crypto, and metals.",
43
+ "schema": {
44
+ "type": "string",
45
+ "default": "USD"
46
+ }
47
+ },
48
+ {
49
+ "name": "symbols",
50
+ "in": "query",
51
+ "required": false,
52
+ "description": "Comma-separated currency codes. Omit to get all available rates.",
53
+ "schema": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ {
58
+ "name": "updates",
59
+ "in": "query",
60
+ "required": false,
61
+ "description": "Update frequency: `1m` (default), `10m`, `1h`, or `1d`.",
62
+ "schema": {
63
+ "type": "string",
64
+ "enum": ["1m", "10m", "1h", "1d"],
65
+ "default": "1m"
66
+ }
67
+ }
68
+ ],
69
+ "responses": {
70
+ "200": {
71
+ "description": "Successful operation",
72
+ "content": {
73
+ "application/json": {
74
+ "schema": {
75
+ "$ref": "#/components/schemas/LatestExchangeRatesResponse"
76
+ },
77
+ "examples": {
78
+ "success": {
79
+ "summary": "Successful response",
80
+ "value": {
81
+ "date": "2026-07-27 12:01:00+00",
82
+ "base": "USD",
83
+ "rates": {
84
+ "EUR": "0.878156",
85
+ "PKR": "277.863"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "400": {
94
+ "description": "Bad request - Invalid parameters",
95
+ "content": {
96
+ "application/json": {
97
+ "schema": {
98
+ "$ref": "#/components/schemas/ErrorResponse"
99
+ },
100
+ "examples": {
101
+ "invalidUpdates": {
102
+ "summary": "updates is not one of 1m/10m/1h/1d",
103
+ "value": {
104
+ "timestamp": 1785153665906,
105
+ "status": 400,
106
+ "error": "Invalid Param Exception",
107
+ "message": "Please provide valid updates parameter (1d,1h,10m,1m)",
108
+ "path": "/v2.0/rates/latest"
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ },
115
+ "404": {
116
+ "description": "Not found - Currency or symbol not available",
117
+ "content": {
118
+ "application/json": {
119
+ "schema": {
120
+ "$ref": "#/components/schemas/ErrorResponse"
121
+ },
122
+ "examples": {
123
+ "invalidBase": {
124
+ "summary": "base currency not supported",
125
+ "value": {
126
+ "timestamp": 1785153666449,
127
+ "status": 404,
128
+ "error": "Not Found Exception",
129
+ "message": "Rates of provided currency ZZZ are not available in our database!",
130
+ "path": "/v2.0/rates/latest"
131
+ }
132
+ },
133
+ "invalidSymbols": {
134
+ "summary": "symbols not supported",
135
+ "value": {
136
+ "timestamp": 1785153666998,
137
+ "status": 404,
138
+ "error": "Not Found Exception",
139
+ "message": "Rates of provided Symbols are not available in our database!",
140
+ "path": "/v2.0/rates/latest"
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+ },
151
+ "components": {
152
+ "securitySchemes": {
153
+ "ApiKeyAuthHeader": {
154
+ "type": "apiKey",
155
+ "in": "header",
156
+ "name": "X-apiKey",
157
+ "description": "Pass your API key via the X-apiKey request header."
158
+ },
159
+ "ApiKeyAuthQuery": {
160
+ "type": "apiKey",
161
+ "in": "query",
162
+ "name": "apiKey",
163
+ "description": "Pass your API key via the apiKey query parameter."
164
+ }
165
+ },
166
+ "schemas": {
167
+ "LatestExchangeRatesResponse": {
168
+ "type": "object",
169
+ "required": ["date", "base", "rates"],
170
+ "properties": {
171
+ "date": {
172
+ "type": "string",
173
+ "description": "Date and time with timezone (UTC) when the rates were recorded."
174
+ },
175
+ "base": {
176
+ "type": "string",
177
+ "description": "Base currency used for calculating exchange rates."
178
+ },
179
+ "rates": {
180
+ "type": "object",
181
+ "description": "Map of currency codes to their exchange rate against the base currency. Each key is a currency code and the value is an exchange rate string.",
182
+ "additionalProperties": {
183
+ "title": "ExchangeRateString",
184
+ "type": "string",
185
+ "description": "Exchange rate value as a string for this currency code."
186
+ }
187
+ }
188
+ },
189
+ "description": "Exchange rate response containing date, base currency, and rates map."
190
+ },
191
+ "ErrorResponse": {
192
+ "type": "object",
193
+ "required": ["timestamp", "status", "error", "message", "path"],
194
+ "properties": {
195
+ "timestamp": {
196
+ "type": "integer",
197
+ "format": "int64",
198
+ "description": "Unix timestamp in milliseconds when the error occurred."
199
+ },
200
+ "status": {
201
+ "type": "integer",
202
+ "description": "HTTP status code returned with the error."
203
+ },
204
+ "error": {
205
+ "type": "string",
206
+ "description": "Specific error type (e.g., `Invalid Param Exception`, `Not Found Exception`)."
207
+ },
208
+ "message": {
209
+ "type": "string",
210
+ "description": "Human-readable error message describing the failure."
211
+ },
212
+ "path": {
213
+ "type": "string",
214
+ "description": "API endpoint path that produced the error."
215
+ }
216
+ },
217
+ "description": "Standard error envelope returned by the API on failed requests."
218
+ }
219
+ }
220
+ },
221
+ "security": [
222
+ {
223
+ "ApiKeyAuthHeader": []
224
+ },
225
+ {
226
+ "ApiKeyAuthQuery": []
227
+ }
228
+ ]
229
+ }
@@ -0,0 +1,234 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Currency Supported API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Retrieve the complete list of all supported currencies with full metadata. Returns a map of currency codes to objects containing currency name, country code, country name, availability status, date range, and icon URL. Covers fiat currencies, cryptocurrencies, and precious metals.",
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": "Currency Supported API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/currency/supported": {
21
+ "get": {
22
+ "tags": ["Currency APIs"],
23
+ "summary": "Get all supported currencies",
24
+ "description": "Returns a map of all supported currencies with metadata.",
25
+ "operationId": "getSupportedCurrencies",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "description": "Response format: `json` (default) or `xml`.",
32
+ "schema": {
33
+ "type": "string",
34
+ "enum": ["json", "xml"],
35
+ "default": "json"
36
+ }
37
+ }
38
+ ],
39
+ "responses": {
40
+ "200": {
41
+ "description": "Successful operation",
42
+ "content": {
43
+ "application/json": {
44
+ "schema": {
45
+ "$ref": "#/components/schemas/SupportedCurrenciesResponse"
46
+ },
47
+ "examples": {
48
+ "success": {
49
+ "summary": "Successful response",
50
+ "value": {
51
+ "supportedCurrenciesMap": {
52
+ "USD": {
53
+ "currencyCode": "USD",
54
+ "currencyName": "US Dollar",
55
+ "countryCode": "AS",
56
+ "countryName": "American Samoa",
57
+ "status": "AVAILABLE",
58
+ "availableFrom": "2020-01-01",
59
+ "availableUntil": "2026-06-18",
60
+ "icon": "https://currencyfreaks.com/photos/flags/usd.png"
61
+ },
62
+ "BTC": {
63
+ "currencyCode": "BTC",
64
+ "currencyName": "Bitcoin",
65
+ "countryCode": "Crypto",
66
+ "countryName": "Global",
67
+ "status": "AVAILABLE",
68
+ "availableFrom": "2014-01-01",
69
+ "availableUntil": "2026-06-18",
70
+ "icon": "https://currencyfreaks.com/photos/flags/btc.png"
71
+ },
72
+ "XAU": {
73
+ "currencyCode": "XAU",
74
+ "currencyName": "Gold Ounce",
75
+ "countryCode": "Metal",
76
+ "countryName": "Precious Metal",
77
+ "status": "AVAILABLE",
78
+ "availableFrom": "2020-01-01",
79
+ "availableUntil": "2026-06-18",
80
+ "icon": "https://currencyfreaks.com/photos/flags/xau.png"
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "406": {
90
+ "description": "Unsupported Media Type — format is not json or xml",
91
+ "content": {
92
+ "application/json": {
93
+ "schema": {
94
+ "$ref": "#/components/schemas/ErrorResponse"
95
+ },
96
+ "examples": {
97
+ "badFormat": {
98
+ "summary": "format value not supported",
99
+ "value": {
100
+ "error": "Unsupported Media Type",
101
+ "message": "The media type specified in the request is not supported. For more details, please refer to the API documentation.",
102
+ "path": "/v1.0/currency/supported",
103
+ "status": 406,
104
+ "timestamp": "2026-07-27T12:12:35.587Z"
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ },
115
+ "components": {
116
+ "securitySchemes": {
117
+ "ApiKeyAuthHeader": {
118
+ "type": "apiKey",
119
+ "in": "header",
120
+ "name": "X-apiKey",
121
+ "description": "Pass your API key via the X-apiKey request header."
122
+ },
123
+ "ApiKeyAuthQuery": {
124
+ "type": "apiKey",
125
+ "in": "query",
126
+ "name": "apiKey",
127
+ "description": "Pass your API key via the apiKey query parameter."
128
+ }
129
+ },
130
+ "schemas": {
131
+ "SupportedCurrenciesResponse": {
132
+ "type": "object",
133
+ "required": ["supportedCurrenciesMap"],
134
+ "properties": {
135
+ "supportedCurrenciesMap": {
136
+ "type": "object",
137
+ "description": "Map of all supported currencies keyed by currency code. Each key is a currency code and the value contains full currency metadata.",
138
+ "additionalProperties": {
139
+ "title": "CurrencySupportedItem",
140
+ "$ref": "#/components/schemas/CurrencySupportedItem"
141
+ }
142
+ }
143
+ },
144
+ "description": "Currency supported response containing the map of all supported currencies."
145
+ },
146
+ "CurrencySupportedItem": {
147
+ "type": "object",
148
+ "description": "Metadata for a single supported currency.",
149
+ "required": [
150
+ "currencyCode",
151
+ "currencyName",
152
+ "countryCode",
153
+ "countryName",
154
+ "status",
155
+ "availableFrom",
156
+ "availableUntil",
157
+ "icon"
158
+ ],
159
+ "properties": {
160
+ "currencyCode": {
161
+ "type": "string",
162
+ "description": "Unique currency code (e.g., USD, BTC, XAU)."
163
+ },
164
+ "currencyName": {
165
+ "type": "string",
166
+ "description": "Full name of the currency."
167
+ },
168
+ "countryCode": {
169
+ "type": "string",
170
+ "description": "ISO 3166-1 alpha-2 country code. For crypto: Crypto. For metals: Metal."
171
+ },
172
+ "countryName": {
173
+ "type": "string",
174
+ "description": "Country name. For crypto: Global. For metals: Precious Metal."
175
+ },
176
+ "status": {
177
+ "type": "string",
178
+ "enum": ["AVAILABLE", "DEPRECIATED"],
179
+ "description": "Availability status."
180
+ },
181
+ "availableFrom": {
182
+ "type": "string",
183
+ "description": "Date the currency became available (YYYY-MM-DD)."
184
+ },
185
+ "availableUntil": {
186
+ "type": "string",
187
+ "description": "Date the currency is or was available (YYYY-MM-DD)."
188
+ },
189
+ "icon": {
190
+ "type": "string",
191
+ "format": "uri",
192
+ "description": "URL of the currency icon/flag image."
193
+ }
194
+ }
195
+ },
196
+ "ErrorResponse": {
197
+ "type": "object",
198
+ "description": "Standard error envelope returned by the API on failed requests.",
199
+ "required": ["message"],
200
+ "properties": {
201
+ "error": {
202
+ "type": "string",
203
+ "description": "Short error category or exception type."
204
+ },
205
+ "message": {
206
+ "type": "string",
207
+ "description": "Human-readable error message describing the failure."
208
+ },
209
+ "path": {
210
+ "type": "string",
211
+ "description": "API endpoint path that produced the error."
212
+ },
213
+ "status": {
214
+ "type": "integer",
215
+ "description": "HTTP status code returned with the error."
216
+ },
217
+ "timestamp": {
218
+ "type": "string",
219
+ "format": "date-time",
220
+ "description": "Timestamp when the error occurred (ISO 8601)."
221
+ }
222
+ }
223
+ }
224
+ }
225
+ },
226
+ "security": [
227
+ {
228
+ "ApiKeyAuthHeader": []
229
+ },
230
+ {
231
+ "ApiKeyAuthQuery": []
232
+ }
233
+ ]
234
+ }