@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.
- package/LICENSE +21 -0
- package/README.md +156 -0
- package/dist/index.cjs +44663 -0
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +44631 -0
- package/package.json +81 -0
- package/specs/commodity/commodity-fluctuation.json +301 -0
- package/specs/commodity/commodity-prices.json +317 -0
- package/specs/commodity/commodity-symbols.json +215 -0
- package/specs/commodity/commodity-time-series.json +329 -0
- package/specs/commodity/historical-commodity-prices.json +273 -0
- package/specs/currency/currency-converter.json +261 -0
- package/specs/currency/currency-fluctuation.json +282 -0
- package/specs/currency/currency-historical-data-limit.json +158 -0
- package/specs/currency/currency-rate.json +229 -0
- package/specs/currency/currency-supported.json +234 -0
- package/specs/currency/currency-symbols.json +161 -0
- package/specs/currency/currency-time-series.json +325 -0
- package/specs/currency/geolocalized-currency-conversion.json +287 -0
- package/specs/currency/historical-currency-converter.json +269 -0
- package/specs/currency/historical-currency-rate.json +246 -0
- package/specs/dns/bulk-dns-lookup.json +624 -0
- package/specs/dns/dns-history-lookup.json +579 -0
- package/specs/dns/dns-lookup.json +466 -0
- package/specs/dns/reverse-dns-lookup.json +414 -0
- package/specs/domain/bulk-domain-checker.json +284 -0
- package/specs/domain/domain-search-with-suggestions.json +280 -0
- package/specs/domain/domain-search.json +206 -0
- package/specs/domain/subdomain-lookup.json +343 -0
- package/specs/email-validation/bulk-email-validation.json +534 -0
- package/specs/email-validation/email-checker.json +586 -0
- package/specs/financial/bulk-vat-rates-country.json +341 -0
- package/specs/financial/financial-apis-supported-countries.json +204 -0
- package/specs/financial/iban-validation.json +328 -0
- package/specs/financial/swift-code-finder.json +192 -0
- package/specs/financial/swift-code-lookup.json +220 -0
- package/specs/financial/vat-number-validation.json +283 -0
- package/specs/financial/vat-rates-by-ip.json +275 -0
- package/specs/financial/vat-rates-country.json +288 -0
- package/specs/general/usage-credits.json +218 -0
- package/specs/geocoding/forward-geocoding.json +402 -0
- package/specs/geocoding/reverse-geocoding.json +326 -0
- package/specs/geodb/administrative-units-details.json +250 -0
- package/specs/geodb/administrative-units-levels.json +198 -0
- package/specs/geodb/administrative-units.json +237 -0
- package/specs/geodb/cities.json +288 -0
- package/specs/geodb/countries-details.json +274 -0
- package/specs/geodb/countries.json +276 -0
- package/specs/geodb/flags-supported.json +166 -0
- package/specs/geodb/flags.json +227 -0
- package/specs/geodb/regions.json +109 -0
- package/specs/geodb/subregions.json +217 -0
- package/specs/ip-intelligence/bulk-ip-lookup.json +1162 -0
- package/specs/ip-intelligence/bulk-ip-threat-intelligence.json +417 -0
- package/specs/ip-intelligence/ip-locator.json +941 -0
- package/specs/ip-intelligence/ip-threat-intelligence.json +316 -0
- package/specs/other/astronomy-data.json +803 -0
- package/specs/pdf/delete-pdf-page.json +286 -0
- package/specs/pdf/linearize-pdf.json +277 -0
- package/specs/pdf/merge-pdf.json +285 -0
- package/specs/pdf/pdf-compress.json +304 -0
- package/specs/pdf/pdf-decrypt.json +297 -0
- package/specs/pdf/pdf-encrypt.json +314 -0
- package/specs/pdf/pdf-extract-pages.json +295 -0
- package/specs/pdf/pdf-file-status.json +208 -0
- package/specs/pdf/pdf-file.json +190 -0
- package/specs/pdf/pdf-files.json +126 -0
- package/specs/pdf/pdf-resource-download.json +168 -0
- package/specs/pdf/pdf-resource-upload-binary.json +218 -0
- package/specs/pdf/pdf-resource-upload.json +248 -0
- package/specs/pdf/pdf-restrict.json +343 -0
- package/specs/pdf/pdf-split-pages.json +281 -0
- package/specs/pdf/pdf-task-status.json +252 -0
- package/specs/pdf/pdf-to-image.json +1219 -0
- package/specs/pdf/pdf-unrestrict.json +324 -0
- package/specs/pdf/rotate-pdf-pages.json +305 -0
- package/specs/phone-validation/bulk-phone-number-validation.json +518 -0
- package/specs/phone-validation/phone-number-validation.json +456 -0
- package/specs/scraper/web-scraper.json +674 -0
- package/specs/screenshot/bulk-screenshot.json +949 -0
- package/specs/screenshot/website-screenshot.json +1147 -0
- package/specs/ssl/ssl-certificate-chain-lookup.json +756 -0
- package/specs/ssl/ssl-certificate-lookup.json +634 -0
- package/specs/timezone/timezone-converter.json +362 -0
- package/specs/timezone/timezone-lookup.json +910 -0
- package/specs/user-agent/bulk-user-agent-parser.json +441 -0
- package/specs/user-agent/user-agent-parser.json +346 -0
- package/specs/weather/air-quality.json +779 -0
- package/specs/weather/bulk-live-weather.json +834 -0
- package/specs/weather/flood-forecast.json +693 -0
- package/specs/weather/historical-weather.json +1019 -0
- package/specs/weather/live-weather.json +789 -0
- package/specs/weather/marine-weather.json +940 -0
- package/specs/weather/time-series-weather.json +1056 -0
- package/specs/weather/weather-forecast.json +1202 -0
- package/specs/whois/asn-lookup.json +729 -0
- package/specs/whois/bulk-whois-lookup.json +698 -0
- package/specs/whois/domain-whois-history-lookup.json +500 -0
- package/specs/whois/reverse-whois.json +625 -0
- package/specs/whois/whois-domain-lookup.json +533 -0
- package/specs/whois/whois-ip-lookup.json +1110 -0
- package/specs/zip-code/bulk-zip-code-lookup.json +318 -0
- package/specs/zip-code/zip-code-api.json +299 -0
- package/specs/zip-code/zip-code-distance-match.json +311 -0
- package/specs/zip-code/zip-code-distance.json +307 -0
- package/specs/zip-code/zip-codes-by-city.json +279 -0
- package/specs/zip-code/zip-codes-by-region.json +278 -0
- package/specs/zip-code/zip-codes-radius-search.json +349 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.1.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Currency Symbols API Reference",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Retrieve the complete map of all supported currency codes to their full names. Returns an object where each key is a currency code (USD, EUR, GBP, PKR, BTC, XAU, etc.) and the value is the corresponding currency name. 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 Symbols API Server"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"paths": {
|
|
20
|
+
"/currency/symbols": {
|
|
21
|
+
"get": {
|
|
22
|
+
"tags": ["Currency APIs"],
|
|
23
|
+
"summary": "Get all currency symbols",
|
|
24
|
+
"description": "Returns a map of currency codes to their full names.",
|
|
25
|
+
"operationId": "getCurrencySymbols",
|
|
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/CurrencySymbolsResponse"
|
|
46
|
+
},
|
|
47
|
+
"examples": {
|
|
48
|
+
"success": {
|
|
49
|
+
"summary": "Successful response",
|
|
50
|
+
"value": {
|
|
51
|
+
"currencySymbols": {
|
|
52
|
+
"USD": "US Dollar",
|
|
53
|
+
"EUR": "Euro",
|
|
54
|
+
"GBP": "British Pound Sterling",
|
|
55
|
+
"PKR": "Pakistani Rupee",
|
|
56
|
+
"BTC": "Bitcoin",
|
|
57
|
+
"XAU": "Gold (troy ounce)"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"406": {
|
|
66
|
+
"description": "Unsupported Media Type — format is not json or xml",
|
|
67
|
+
"content": {
|
|
68
|
+
"application/json": {
|
|
69
|
+
"schema": {
|
|
70
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
71
|
+
},
|
|
72
|
+
"examples": {
|
|
73
|
+
"badFormat": {
|
|
74
|
+
"summary": "format value not supported",
|
|
75
|
+
"value": {
|
|
76
|
+
"error": "Unsupported Media Type",
|
|
77
|
+
"message": "The media type specified in the request is not supported. For more details, please refer to the API documentation.",
|
|
78
|
+
"path": "/v1.0/currency/symbols",
|
|
79
|
+
"status": 406,
|
|
80
|
+
"timestamp": "2026-07-27T12:13:24.369Z"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"components": {
|
|
92
|
+
"securitySchemes": {
|
|
93
|
+
"ApiKeyAuthHeader": {
|
|
94
|
+
"type": "apiKey",
|
|
95
|
+
"in": "header",
|
|
96
|
+
"name": "X-apiKey",
|
|
97
|
+
"description": "Pass your API key via the X-apiKey request header."
|
|
98
|
+
},
|
|
99
|
+
"ApiKeyAuthQuery": {
|
|
100
|
+
"type": "apiKey",
|
|
101
|
+
"in": "query",
|
|
102
|
+
"name": "apiKey",
|
|
103
|
+
"description": "Pass your API key via the apiKey query parameter."
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"schemas": {
|
|
107
|
+
"CurrencySymbolsResponse": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"required": ["currencySymbols"],
|
|
110
|
+
"properties": {
|
|
111
|
+
"currencySymbols": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"description": "Map of currency codes to their full names. Each key is a currency code and the value is the currency name string.",
|
|
114
|
+
"additionalProperties": {
|
|
115
|
+
"title": "CurrencySymbolName",
|
|
116
|
+
"type": "string",
|
|
117
|
+
"description": "Full name of the currency (e.g., US Dollar, Euro)."
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"description": "Currency symbols response containing the map of all currency codes to their names."
|
|
122
|
+
},
|
|
123
|
+
"ErrorResponse": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"description": "Standard error envelope returned by the API on failed requests.",
|
|
126
|
+
"required": ["message"],
|
|
127
|
+
"properties": {
|
|
128
|
+
"error": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"description": "Short error category or exception type."
|
|
131
|
+
},
|
|
132
|
+
"message": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"description": "Human-readable error message describing the failure."
|
|
135
|
+
},
|
|
136
|
+
"path": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"description": "API endpoint path that produced the error."
|
|
139
|
+
},
|
|
140
|
+
"status": {
|
|
141
|
+
"type": "integer",
|
|
142
|
+
"description": "HTTP status code returned with the error."
|
|
143
|
+
},
|
|
144
|
+
"timestamp": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"format": "date-time",
|
|
147
|
+
"description": "Timestamp when the error occurred (ISO 8601)."
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"security": [
|
|
154
|
+
{
|
|
155
|
+
"ApiKeyAuthHeader": []
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"ApiKeyAuthQuery": []
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.1.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Currency Time Series - Historical Currency Exchange Rates for a Time Interval",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Retrieve day-by-day historical exchange rates for any base currency over a custom date range up to 1 year. Returns an array of daily rate objects, each containing the date and a map of currency codes to exchange rate strings. Accepts optional target symbols and a base currency (defaults to USD). Returns a 400 error for invalid dates or range exceeded, and a 404 error when no data is available.",
|
|
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 Time Series API Server"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"paths": {
|
|
20
|
+
"/currency/time-series": {
|
|
21
|
+
"get": {
|
|
22
|
+
"tags": ["Currency APIs"],
|
|
23
|
+
"summary": "Get time series of exchange rates",
|
|
24
|
+
"description": "Returns day-by-day historical exchange rates for a custom date range.",
|
|
25
|
+
"operationId": "getTimeSeries",
|
|
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": "startDate",
|
|
40
|
+
"in": "query",
|
|
41
|
+
"required": true,
|
|
42
|
+
"description": "Start date in `YYYY-MM-DD` format.",
|
|
43
|
+
"schema": {
|
|
44
|
+
"type": "string"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "endDate",
|
|
49
|
+
"in": "query",
|
|
50
|
+
"required": false,
|
|
51
|
+
"description": "End date in `YYYY-MM-DD` format. Defaults to yesterday.",
|
|
52
|
+
"schema": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "base",
|
|
58
|
+
"in": "query",
|
|
59
|
+
"required": false,
|
|
60
|
+
"description": "Base currency code. Defaults to `USD`.",
|
|
61
|
+
"schema": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"default": "USD"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "symbols",
|
|
68
|
+
"in": "query",
|
|
69
|
+
"required": false,
|
|
70
|
+
"description": "Comma-separated currency codes. Omit to get all available rates.",
|
|
71
|
+
"schema": {
|
|
72
|
+
"type": "string"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"responses": {
|
|
77
|
+
"200": {
|
|
78
|
+
"description": "Successful operation",
|
|
79
|
+
"content": {
|
|
80
|
+
"application/json": {
|
|
81
|
+
"schema": {
|
|
82
|
+
"$ref": "#/components/schemas/CurrencyTimeseriesResponse"
|
|
83
|
+
},
|
|
84
|
+
"examples": {
|
|
85
|
+
"success": {
|
|
86
|
+
"summary": "Successful response",
|
|
87
|
+
"value": {
|
|
88
|
+
"startDate": "2025-01-01",
|
|
89
|
+
"endDate": "2025-01-07",
|
|
90
|
+
"base": "USD",
|
|
91
|
+
"historicalRatesList": [
|
|
92
|
+
{
|
|
93
|
+
"date": "2025-01-01",
|
|
94
|
+
"rates": {
|
|
95
|
+
"EUR": "0.96605",
|
|
96
|
+
"PKR": "278.4"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"date": "2025-01-02",
|
|
101
|
+
"rates": {
|
|
102
|
+
"EUR": "0.9739",
|
|
103
|
+
"PKR": "278.4"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"date": "2025-01-03",
|
|
108
|
+
"rates": {
|
|
109
|
+
"EUR": "0.97005",
|
|
110
|
+
"PKR": "278.4"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"date": "2025-01-04",
|
|
115
|
+
"rates": {
|
|
116
|
+
"EUR": "0.97005",
|
|
117
|
+
"PKR": "278.4"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"date": "2025-01-05",
|
|
122
|
+
"rates": {
|
|
123
|
+
"EUR": "0.9704",
|
|
124
|
+
"PKR": "278.4"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"date": "2025-01-06",
|
|
129
|
+
"rates": {
|
|
130
|
+
"EUR": "0.96305",
|
|
131
|
+
"PKR": "278.4"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"date": "2025-01-07",
|
|
136
|
+
"rates": {
|
|
137
|
+
"EUR": "0.967",
|
|
138
|
+
"PKR": "278.4"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"400": {
|
|
149
|
+
"description": "Bad request - Invalid dates or range exceeded",
|
|
150
|
+
"content": {
|
|
151
|
+
"application/json": {
|
|
152
|
+
"schema": {
|
|
153
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
154
|
+
},
|
|
155
|
+
"examples": {
|
|
156
|
+
"missingStartDate": {
|
|
157
|
+
"summary": "Missing required startDate parameter",
|
|
158
|
+
"value": {
|
|
159
|
+
"error": "Invalid Param Exception",
|
|
160
|
+
"message": "please pass correct parameters",
|
|
161
|
+
"path": "/v1.0/currency/time-series",
|
|
162
|
+
"status": 400,
|
|
163
|
+
"timestamp": "2026-07-27T12:08:01.002Z"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"rangeExceeded": {
|
|
167
|
+
"summary": "Interval exceeds 1 year",
|
|
168
|
+
"value": {
|
|
169
|
+
"timestamp": 1785154081486,
|
|
170
|
+
"status": 400,
|
|
171
|
+
"error": "Invalid Param Exception",
|
|
172
|
+
"message": "You can only retrieve time series data for a maximum interval of 1 Year",
|
|
173
|
+
"path": "/v2.0/timeseries"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"startAfterEnd": {
|
|
177
|
+
"summary": "startDate is after endDate or the current date (includes any future date)",
|
|
178
|
+
"value": {
|
|
179
|
+
"timestamp": 1785154082031,
|
|
180
|
+
"status": 400,
|
|
181
|
+
"error": "Invalid Param Exception",
|
|
182
|
+
"message": "Starting date cannot be after current date or ending date.",
|
|
183
|
+
"path": "/v2.0/timeseries"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"invalidDateFormat": {
|
|
187
|
+
"summary": "startDate/endDate not in YYYY-MM-DD format",
|
|
188
|
+
"value": {
|
|
189
|
+
"timestamp": 1785154106063,
|
|
190
|
+
"status": 400,
|
|
191
|
+
"error": "Invalid Param Exception",
|
|
192
|
+
"message": "Provided Dates are in Invalid Format. Dates must be in a valid format YYYY-MM-DD!",
|
|
193
|
+
"path": "/v2.0/timeseries"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"404": {
|
|
201
|
+
"description": "Not found - No data for interval",
|
|
202
|
+
"content": {
|
|
203
|
+
"application/json": {
|
|
204
|
+
"schema": {
|
|
205
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
206
|
+
},
|
|
207
|
+
"examples": {
|
|
208
|
+
"noData": {
|
|
209
|
+
"summary": "base or symbols not supported for the given interval",
|
|
210
|
+
"value": {
|
|
211
|
+
"timestamp": 1785154125982,
|
|
212
|
+
"status": 404,
|
|
213
|
+
"error": "Not Found Exception",
|
|
214
|
+
"message": "Rates of provided base and symbols are not found for given intervals.",
|
|
215
|
+
"path": "/v2.0/timeseries"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"components": {
|
|
227
|
+
"securitySchemes": {
|
|
228
|
+
"ApiKeyAuthHeader": {
|
|
229
|
+
"type": "apiKey",
|
|
230
|
+
"in": "header",
|
|
231
|
+
"name": "X-apiKey",
|
|
232
|
+
"description": "Pass your API key via the X-apiKey request header."
|
|
233
|
+
},
|
|
234
|
+
"ApiKeyAuthQuery": {
|
|
235
|
+
"type": "apiKey",
|
|
236
|
+
"in": "query",
|
|
237
|
+
"name": "apiKey",
|
|
238
|
+
"description": "Pass your API key via the apiKey query parameter."
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"schemas": {
|
|
242
|
+
"CurrencyTimeseriesResponse": {
|
|
243
|
+
"type": "object",
|
|
244
|
+
"required": ["startDate", "endDate", "base", "historicalRatesList"],
|
|
245
|
+
"properties": {
|
|
246
|
+
"startDate": {
|
|
247
|
+
"type": "string",
|
|
248
|
+
"description": "Start date of the interval (YYYY-MM-DD)."
|
|
249
|
+
},
|
|
250
|
+
"endDate": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"description": "End date of the interval (YYYY-MM-DD)."
|
|
253
|
+
},
|
|
254
|
+
"base": {
|
|
255
|
+
"type": "string",
|
|
256
|
+
"description": "Base currency used for all rates in the series."
|
|
257
|
+
},
|
|
258
|
+
"historicalRatesList": {
|
|
259
|
+
"type": "array",
|
|
260
|
+
"description": "Array of daily rate objects within the specified interval.",
|
|
261
|
+
"items": {
|
|
262
|
+
"$ref": "#/components/schemas/CurrencyTimeSeriesItem"
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"description": "Currency time series response containing daily exchange rate data over a date range."
|
|
267
|
+
},
|
|
268
|
+
"CurrencyTimeSeriesItem": {
|
|
269
|
+
"type": "object",
|
|
270
|
+
"description": "Daily exchange rate data for a specific date.",
|
|
271
|
+
"required": ["date", "rates"],
|
|
272
|
+
"properties": {
|
|
273
|
+
"date": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"description": "Date within the interval (YYYY-MM-DD)."
|
|
276
|
+
},
|
|
277
|
+
"rates": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"description": "Map of currency codes to exchange rate strings for that date. Each key is a currency code and the value is an exchange rate string.",
|
|
280
|
+
"additionalProperties": {
|
|
281
|
+
"title": "ExchangeRateString",
|
|
282
|
+
"type": "string",
|
|
283
|
+
"description": "Exchange rate value as a string for this currency code."
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
"ErrorResponse": {
|
|
289
|
+
"type": "object",
|
|
290
|
+
"description": "Standard error envelope returned by the API on failed requests. Gateway-level validation errors use an ISO 8601 timestamp and the public endpoint path; currency-service errors use a Unix millisecond timestamp and an internal service path instead.",
|
|
291
|
+
"required": ["message"],
|
|
292
|
+
"properties": {
|
|
293
|
+
"timestamp": {
|
|
294
|
+
"type": ["string", "integer"],
|
|
295
|
+
"description": "Timestamp when the error occurred — ISO 8601 string for gateway errors, Unix milliseconds integer for currency-service errors."
|
|
296
|
+
},
|
|
297
|
+
"status": {
|
|
298
|
+
"type": "integer",
|
|
299
|
+
"description": "HTTP status code returned with the error."
|
|
300
|
+
},
|
|
301
|
+
"error": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"description": "Specific error type (e.g., Invalid Param Exception, Not Found Exception)."
|
|
304
|
+
},
|
|
305
|
+
"message": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"description": "Human-readable error message describing the failure."
|
|
308
|
+
},
|
|
309
|
+
"path": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"description": "API endpoint path (gateway errors) or internal service path (currency-service errors) that produced the error."
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
"security": [
|
|
318
|
+
{
|
|
319
|
+
"ApiKeyAuthHeader": []
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"ApiKeyAuthQuery": []
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
}
|