fmp-data 0.0.0__py3-none-any.whl
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.
- fmp_data/__init__.py +138 -0
- fmp_data/alternative/__init__.py +34 -0
- fmp_data/alternative/client.py +150 -0
- fmp_data/alternative/endpoints.py +533 -0
- fmp_data/alternative/mapping.py +737 -0
- fmp_data/alternative/models.py +296 -0
- fmp_data/alternative/schema.py +165 -0
- fmp_data/base.py +316 -0
- fmp_data/client.py +269 -0
- fmp_data/company/__init__.py +40 -0
- fmp_data/company/client.py +238 -0
- fmp_data/company/endpoints.py +711 -0
- fmp_data/company/hints.py +77 -0
- fmp_data/company/mapping.py +1361 -0
- fmp_data/company/models.py +543 -0
- fmp_data/company/schema.py +132 -0
- fmp_data/config.py +207 -0
- fmp_data/economics/__init__.py +16 -0
- fmp_data/economics/client.py +52 -0
- fmp_data/economics/endpoints.py +164 -0
- fmp_data/economics/mapping.py +641 -0
- fmp_data/economics/models.py +75 -0
- fmp_data/economics/schema.py +91 -0
- fmp_data/exceptions.py +54 -0
- fmp_data/fundamental/__init__.py +40 -0
- fmp_data/fundamental/client.py +87 -0
- fmp_data/fundamental/endpoints.py +403 -0
- fmp_data/fundamental/mapping.py +867 -0
- fmp_data/fundamental/models.py +913 -0
- fmp_data/fundamental/schema.py +40 -0
- fmp_data/institutional/__init__.py +26 -0
- fmp_data/institutional/client.py +141 -0
- fmp_data/institutional/endpoints.py +321 -0
- fmp_data/institutional/mapping.py +749 -0
- fmp_data/institutional/models.py +301 -0
- fmp_data/institutional/schema.py +99 -0
- fmp_data/intelligence/__init__.py +58 -0
- fmp_data/intelligence/client.py +331 -0
- fmp_data/intelligence/endpoints.py +788 -0
- fmp_data/intelligence/mapping.py +1677 -0
- fmp_data/intelligence/models.py +707 -0
- fmp_data/intelligence/schema.py +57 -0
- fmp_data/investment/__init__.py +24 -0
- fmp_data/investment/client.py +104 -0
- fmp_data/investment/endpoints.py +241 -0
- fmp_data/investment/mapping.py +658 -0
- fmp_data/investment/models.py +220 -0
- fmp_data/investment/schema.py +106 -0
- fmp_data/lc/__init__.py +256 -0
- fmp_data/lc/config.py +88 -0
- fmp_data/lc/embedding.py +140 -0
- fmp_data/lc/hints.py +66 -0
- fmp_data/lc/mapping.py +107 -0
- fmp_data/lc/models.py +98 -0
- fmp_data/lc/registry.py +693 -0
- fmp_data/lc/utils.py +35 -0
- fmp_data/lc/validation.py +267 -0
- fmp_data/lc/vector_store.py +592 -0
- fmp_data/logger.py +358 -0
- fmp_data/market/__init__.py +18 -0
- fmp_data/market/client.py +106 -0
- fmp_data/market/endpoints.py +358 -0
- fmp_data/market/hints.py +22 -0
- fmp_data/market/mapping.py +854 -0
- fmp_data/market/models.py +310 -0
- fmp_data/market/schema.py +186 -0
- fmp_data/mcp/__init__.py +0 -0
- fmp_data/mcp/server.py +101 -0
- fmp_data/mcp/tool_loader.py +74 -0
- fmp_data/mcp/tools_manifest.py +17 -0
- fmp_data/models.py +265 -0
- fmp_data/rate_limit.py +136 -0
- fmp_data/schema.py +158 -0
- fmp_data/technical/__init__.py +28 -0
- fmp_data/technical/client.py +214 -0
- fmp_data/technical/endpoints.py +102 -0
- fmp_data/technical/mapping.py +452 -0
- fmp_data/technical/models.py +87 -0
- fmp_data/technical/schema.py +261 -0
- fmp_data-0.0.0.dist-info/METADATA +732 -0
- fmp_data-0.0.0.dist-info/RECORD +84 -0
- fmp_data-0.0.0.dist-info/WHEEL +4 -0
- fmp_data-0.0.0.dist-info/entry_points.txt +10 -0
- fmp_data-0.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,737 @@
|
|
|
1
|
+
# fmp_data/alternative/mapping.py
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from fmp_data.alternative.endpoints import (
|
|
5
|
+
COMMODITIES_LIST,
|
|
6
|
+
COMMODITIES_QUOTES,
|
|
7
|
+
COMMODITY_HISTORICAL,
|
|
8
|
+
COMMODITY_INTRADAY,
|
|
9
|
+
COMMODITY_QUOTE,
|
|
10
|
+
CRYPTO_HISTORICAL,
|
|
11
|
+
CRYPTO_INTRADAY,
|
|
12
|
+
CRYPTO_LIST,
|
|
13
|
+
CRYPTO_QUOTE,
|
|
14
|
+
CRYPTO_QUOTES,
|
|
15
|
+
FOREX_HISTORICAL,
|
|
16
|
+
FOREX_INTRADAY,
|
|
17
|
+
FOREX_LIST,
|
|
18
|
+
FOREX_QUOTE,
|
|
19
|
+
FOREX_QUOTES,
|
|
20
|
+
)
|
|
21
|
+
from fmp_data.lc.models import (
|
|
22
|
+
EndpointSemantics,
|
|
23
|
+
ParameterHint,
|
|
24
|
+
ResponseFieldInfo,
|
|
25
|
+
SemanticCategory,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# Create method name mapping
|
|
29
|
+
ALTERNATIVE_ENDPOINT_MAP = {
|
|
30
|
+
f"get_{name}": endpoint
|
|
31
|
+
for name, endpoint in {
|
|
32
|
+
"crypto_list": CRYPTO_LIST,
|
|
33
|
+
"crypto_quotes": CRYPTO_QUOTES,
|
|
34
|
+
"crypto_quote": CRYPTO_QUOTE,
|
|
35
|
+
"crypto_historical": CRYPTO_HISTORICAL,
|
|
36
|
+
"crypto_intraday": CRYPTO_INTRADAY,
|
|
37
|
+
"forex_list": FOREX_LIST,
|
|
38
|
+
"forex_quotes": FOREX_QUOTES,
|
|
39
|
+
"forex_quote": FOREX_QUOTE,
|
|
40
|
+
"forex_historical": FOREX_HISTORICAL,
|
|
41
|
+
"forex_intraday": FOREX_INTRADAY,
|
|
42
|
+
"commodities_list": COMMODITIES_LIST,
|
|
43
|
+
"commodities_quotes": COMMODITIES_QUOTES,
|
|
44
|
+
"commodity_quote": COMMODITY_QUOTE,
|
|
45
|
+
"commodity_historical": COMMODITY_HISTORICAL,
|
|
46
|
+
"commodity_intraday": COMMODITY_INTRADAY,
|
|
47
|
+
}.items()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Common parameter hints
|
|
51
|
+
SYMBOL_HINTS = {
|
|
52
|
+
"crypto": ParameterHint(
|
|
53
|
+
natural_names=["cryptocurrency", "crypto", "token"],
|
|
54
|
+
extraction_patterns=[
|
|
55
|
+
r"\b[A-Z]{3,4}USD\b",
|
|
56
|
+
r"\b(BTC|ETH|XRP|USDT)[A-Z]*",
|
|
57
|
+
r"(?i)(?:for|of)\s+([A-Z]{3,})",
|
|
58
|
+
],
|
|
59
|
+
examples=["BTCUSD", "ETHUSD", "XRPUSD"],
|
|
60
|
+
context_clues=["bitcoin", "ethereum", "crypto", "token", "coin"],
|
|
61
|
+
),
|
|
62
|
+
"forex": ParameterHint(
|
|
63
|
+
natural_names=["currency pair", "forex pair", "exchange rate"],
|
|
64
|
+
extraction_patterns=[
|
|
65
|
+
r"([A-Z]{6})",
|
|
66
|
+
r"([A-Z]{3}/[A-Z]{3})",
|
|
67
|
+
r"(?i)(EUR|USD|GBP|JPY|AUD|CAD|CHF|NZD)[A-Z]{3}",
|
|
68
|
+
],
|
|
69
|
+
examples=["EURUSD", "GBPJPY", "USDCAD"],
|
|
70
|
+
context_clues=["currency", "forex", "fx", "exchange rate"],
|
|
71
|
+
),
|
|
72
|
+
"commodity": ParameterHint(
|
|
73
|
+
natural_names=["commodity", "symbol", "product"],
|
|
74
|
+
extraction_patterns=[
|
|
75
|
+
r"(?i)(gold|oil|silver|GC|CL|SI)",
|
|
76
|
+
r"([A-Z]{2})",
|
|
77
|
+
],
|
|
78
|
+
examples=["GC", "CL", "SI"],
|
|
79
|
+
context_clues=["gold", "oil", "silver", "commodity", "metal", "energy"],
|
|
80
|
+
),
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
DATE_HINTS = {
|
|
84
|
+
"start_date": ParameterHint(
|
|
85
|
+
natural_names=["start date", "from date", "beginning", "since"],
|
|
86
|
+
extraction_patterns=[
|
|
87
|
+
r"(\d{4}-\d{2}-\d{2})",
|
|
88
|
+
r"(?:from|since|after)\s+(\d{4}-\d{2}-\d{2})",
|
|
89
|
+
],
|
|
90
|
+
examples=["2023-01-01", "2022-12-31"],
|
|
91
|
+
context_clues=["from", "since", "starting", "beginning", "after"],
|
|
92
|
+
),
|
|
93
|
+
"end_date": ParameterHint( # Changed from "to_date"
|
|
94
|
+
natural_names=["end date", "to date", "until", "through"],
|
|
95
|
+
extraction_patterns=[
|
|
96
|
+
r"(?:to|until|through)\s+(\d{4}-\d{2}-\d{2})",
|
|
97
|
+
r"(\d{4}-\d{2}-\d{2})",
|
|
98
|
+
],
|
|
99
|
+
examples=["2024-01-01", "2023-12-31"],
|
|
100
|
+
context_clues=["to", "until", "through", "ending"],
|
|
101
|
+
),
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
INTERVAL_HINT = ParameterHint(
|
|
105
|
+
natural_names=["timeframe", "interval", "period"],
|
|
106
|
+
extraction_patterns=[
|
|
107
|
+
r"(\d+)\s*(?:minute|min|hour|hr)",
|
|
108
|
+
r"(?:1min|5min|15min|30min|1hour|4hour)",
|
|
109
|
+
],
|
|
110
|
+
examples=["1min", "5min", "1hour"],
|
|
111
|
+
context_clues=["minute", "hour", "interval", "timeframe"],
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
ALTERNATIVE_ENDPOINTS_SEMANTICS = {
|
|
115
|
+
# Crypto endpoints
|
|
116
|
+
"crypto_list": EndpointSemantics(
|
|
117
|
+
client_name="alternative",
|
|
118
|
+
method_name="get_crypto_list",
|
|
119
|
+
natural_description=(
|
|
120
|
+
"Get a list of all available cryptocurrencies "
|
|
121
|
+
"and their basic information"
|
|
122
|
+
),
|
|
123
|
+
example_queries=[
|
|
124
|
+
"What cryptocurrencies are available?",
|
|
125
|
+
"Show me the list of supported crypto pairs",
|
|
126
|
+
"What crypto symbols can I look up?",
|
|
127
|
+
"List available digital assets",
|
|
128
|
+
],
|
|
129
|
+
related_terms=[
|
|
130
|
+
"cryptocurrency",
|
|
131
|
+
"crypto",
|
|
132
|
+
"digital assets",
|
|
133
|
+
"tokens",
|
|
134
|
+
"available pairs",
|
|
135
|
+
"trading pairs",
|
|
136
|
+
"crypto symbols",
|
|
137
|
+
],
|
|
138
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
139
|
+
sub_category="Cryptocurrency",
|
|
140
|
+
parameter_hints={}, # No parameters needed
|
|
141
|
+
response_hints={
|
|
142
|
+
"symbol": ResponseFieldInfo(
|
|
143
|
+
description="Trading symbol for the cryptocurrency pair",
|
|
144
|
+
examples=["BTCUSD", "ETHUSD"],
|
|
145
|
+
related_terms=["trading pair", "crypto symbol"],
|
|
146
|
+
),
|
|
147
|
+
"name": ResponseFieldInfo(
|
|
148
|
+
description="Full name of the cryptocurrency",
|
|
149
|
+
examples=["Bitcoin", "Ethereum"],
|
|
150
|
+
related_terms=["crypto name", "currency name"],
|
|
151
|
+
),
|
|
152
|
+
},
|
|
153
|
+
use_cases=[
|
|
154
|
+
"Finding available cryptocurrencies to analyze",
|
|
155
|
+
"Looking up crypto trading pairs",
|
|
156
|
+
"Discovering supported digital assets",
|
|
157
|
+
],
|
|
158
|
+
),
|
|
159
|
+
"crypto_historical": EndpointSemantics(
|
|
160
|
+
client_name="alternative",
|
|
161
|
+
method_name="get_crypto_historical",
|
|
162
|
+
natural_description="Retrieve historical price data for a cryptocurrency",
|
|
163
|
+
example_queries=[
|
|
164
|
+
"Get Bitcoin price history",
|
|
165
|
+
"Show ETH price history for last month",
|
|
166
|
+
"Historical crypto data between dates",
|
|
167
|
+
"Get historical OHLCV data for cryptocurrency",
|
|
168
|
+
],
|
|
169
|
+
related_terms=[
|
|
170
|
+
"historical prices",
|
|
171
|
+
"price history",
|
|
172
|
+
"past data",
|
|
173
|
+
"historical trading",
|
|
174
|
+
"crypto history",
|
|
175
|
+
"price trends",
|
|
176
|
+
],
|
|
177
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
178
|
+
sub_category="Cryptocurrency",
|
|
179
|
+
parameter_hints={
|
|
180
|
+
"symbol": SYMBOL_HINTS["crypto"],
|
|
181
|
+
"start_date": DATE_HINTS["start_date"],
|
|
182
|
+
"end_date": DATE_HINTS["end_date"],
|
|
183
|
+
},
|
|
184
|
+
response_hints={
|
|
185
|
+
"date": ResponseFieldInfo(
|
|
186
|
+
description="Trading date",
|
|
187
|
+
examples=["2023-12-20", "2024-01-15"],
|
|
188
|
+
related_terms=["date", "trading date", "timestamp"],
|
|
189
|
+
),
|
|
190
|
+
"price": ResponseFieldInfo(
|
|
191
|
+
description="Closing price",
|
|
192
|
+
examples=["45000.50", "1800.75"],
|
|
193
|
+
related_terms=["close", "closing price", "settlement"],
|
|
194
|
+
),
|
|
195
|
+
},
|
|
196
|
+
use_cases=[
|
|
197
|
+
"Historical price analysis",
|
|
198
|
+
"Technical analysis",
|
|
199
|
+
"Trend identification",
|
|
200
|
+
"Backtesting trading strategies",
|
|
201
|
+
],
|
|
202
|
+
),
|
|
203
|
+
"crypto_quotes": EndpointSemantics(
|
|
204
|
+
client_name="alternative",
|
|
205
|
+
method_name="get_crypto_quotes",
|
|
206
|
+
natural_description=(
|
|
207
|
+
"Get current price quotes for all available " "cryptocurrencies"
|
|
208
|
+
),
|
|
209
|
+
example_queries=[
|
|
210
|
+
"What's the current Bitcoin price?",
|
|
211
|
+
"Show me crypto prices",
|
|
212
|
+
"Get cryptocurrency quotes",
|
|
213
|
+
"What's the price of ETH?",
|
|
214
|
+
],
|
|
215
|
+
related_terms=[
|
|
216
|
+
"crypto price",
|
|
217
|
+
"cryptocurrency value",
|
|
218
|
+
"token price",
|
|
219
|
+
"digital asset price",
|
|
220
|
+
"crypto quotes",
|
|
221
|
+
"current price",
|
|
222
|
+
],
|
|
223
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
224
|
+
sub_category="Cryptocurrency",
|
|
225
|
+
parameter_hints={}, # No parameters needed
|
|
226
|
+
response_hints={
|
|
227
|
+
"price": ResponseFieldInfo(
|
|
228
|
+
description="Current trading price",
|
|
229
|
+
examples=["45000.50", "1800.75"],
|
|
230
|
+
related_terms=["current price", "trading price", "value"],
|
|
231
|
+
),
|
|
232
|
+
"change": ResponseFieldInfo(
|
|
233
|
+
description="Price change from previous close",
|
|
234
|
+
examples=["+1500", "-200"],
|
|
235
|
+
related_terms=["price change", "movement", "difference"],
|
|
236
|
+
),
|
|
237
|
+
},
|
|
238
|
+
use_cases=[
|
|
239
|
+
"Checking current crypto prices",
|
|
240
|
+
"Monitoring cryptocurrency markets",
|
|
241
|
+
"Tracking digital asset values",
|
|
242
|
+
],
|
|
243
|
+
),
|
|
244
|
+
"crypto_quote": EndpointSemantics(
|
|
245
|
+
client_name="alternative",
|
|
246
|
+
method_name="get_crypto_quote",
|
|
247
|
+
natural_description=(
|
|
248
|
+
"Get detailed real-time quote for a specific " "cryptocurrency"
|
|
249
|
+
),
|
|
250
|
+
example_queries=[
|
|
251
|
+
"Get current Bitcoin price",
|
|
252
|
+
"Show ETHUSD quote",
|
|
253
|
+
"What's the latest price for BTC?",
|
|
254
|
+
"Get detailed crypto quote",
|
|
255
|
+
],
|
|
256
|
+
related_terms=[
|
|
257
|
+
"crypto price",
|
|
258
|
+
"quote",
|
|
259
|
+
"current price",
|
|
260
|
+
"real-time",
|
|
261
|
+
"live price",
|
|
262
|
+
"market data",
|
|
263
|
+
],
|
|
264
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
265
|
+
sub_category="Cryptocurrency",
|
|
266
|
+
parameter_hints={"symbol": SYMBOL_HINTS["crypto"]},
|
|
267
|
+
response_hints={
|
|
268
|
+
"price": ResponseFieldInfo(
|
|
269
|
+
description="Current trading price",
|
|
270
|
+
examples=["45000.50", "1800.75"],
|
|
271
|
+
related_terms=["price", "current price", "trading price"],
|
|
272
|
+
),
|
|
273
|
+
},
|
|
274
|
+
use_cases=[
|
|
275
|
+
"Real-time crypto price monitoring",
|
|
276
|
+
"Trading decisions",
|
|
277
|
+
"Market analysis",
|
|
278
|
+
],
|
|
279
|
+
),
|
|
280
|
+
"crypto_intraday": EndpointSemantics(
|
|
281
|
+
client_name="alternative",
|
|
282
|
+
method_name="get_crypto_intraday",
|
|
283
|
+
natural_description="Get detailed intraday price data for a cryptocurrency",
|
|
284
|
+
example_queries=[
|
|
285
|
+
"Get minute-by-minute Bitcoin prices",
|
|
286
|
+
"Show hourly ETH data",
|
|
287
|
+
"Get intraday crypto prices",
|
|
288
|
+
"5-minute interval BTCUSD data",
|
|
289
|
+
],
|
|
290
|
+
related_terms=[
|
|
291
|
+
"intraday",
|
|
292
|
+
"minute data",
|
|
293
|
+
"hourly data",
|
|
294
|
+
"high-frequency",
|
|
295
|
+
"short-term",
|
|
296
|
+
"detailed prices",
|
|
297
|
+
],
|
|
298
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
299
|
+
sub_category="Cryptocurrency",
|
|
300
|
+
parameter_hints={
|
|
301
|
+
"symbol": SYMBOL_HINTS["crypto"],
|
|
302
|
+
"interval": INTERVAL_HINT,
|
|
303
|
+
},
|
|
304
|
+
response_hints={
|
|
305
|
+
"datetime": ResponseFieldInfo(
|
|
306
|
+
description="Price timestamp",
|
|
307
|
+
examples=["2024-01-20 14:30:00"],
|
|
308
|
+
related_terms=["time", "timestamp", "date"],
|
|
309
|
+
),
|
|
310
|
+
"price": ResponseFieldInfo(
|
|
311
|
+
description="Price at the interval",
|
|
312
|
+
examples=["45000.50", "1800.75"],
|
|
313
|
+
related_terms=["price", "rate", "value"],
|
|
314
|
+
),
|
|
315
|
+
"volume": ResponseFieldInfo(
|
|
316
|
+
description="Trading volume",
|
|
317
|
+
examples=["1250", "3500"],
|
|
318
|
+
related_terms=["volume", "trades", "activity"],
|
|
319
|
+
),
|
|
320
|
+
},
|
|
321
|
+
use_cases=[
|
|
322
|
+
"Day trading analysis",
|
|
323
|
+
"High-frequency trading",
|
|
324
|
+
"Real-time monitoring",
|
|
325
|
+
"Technical analysis",
|
|
326
|
+
],
|
|
327
|
+
),
|
|
328
|
+
# Forex endpoints
|
|
329
|
+
"forex_list": EndpointSemantics(
|
|
330
|
+
client_name="alternative",
|
|
331
|
+
method_name="get_forex_list",
|
|
332
|
+
natural_description="Get a complete list of available forex currency pairs",
|
|
333
|
+
example_queries=[
|
|
334
|
+
"What forex pairs are available?",
|
|
335
|
+
"Show available currency pairs",
|
|
336
|
+
"List forex trading pairs",
|
|
337
|
+
"What currencies can I trade?",
|
|
338
|
+
],
|
|
339
|
+
related_terms=[
|
|
340
|
+
"forex pairs",
|
|
341
|
+
"currency pairs",
|
|
342
|
+
"exchange rates",
|
|
343
|
+
"available currencies",
|
|
344
|
+
"trading pairs",
|
|
345
|
+
"fx pairs",
|
|
346
|
+
],
|
|
347
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
348
|
+
sub_category="Forex",
|
|
349
|
+
parameter_hints={},
|
|
350
|
+
response_hints={
|
|
351
|
+
"symbol": ResponseFieldInfo(
|
|
352
|
+
description="Currency pair symbol",
|
|
353
|
+
examples=["EURUSD", "GBPJPY"],
|
|
354
|
+
related_terms=["pair", "forex symbol", "currency code"],
|
|
355
|
+
),
|
|
356
|
+
"name": ResponseFieldInfo(
|
|
357
|
+
description="Full name of the currency pair",
|
|
358
|
+
examples=["Euro/US Dollar", "British Pound/Japanese Yen"],
|
|
359
|
+
related_terms=["pair name", "currency name"],
|
|
360
|
+
),
|
|
361
|
+
},
|
|
362
|
+
use_cases=[
|
|
363
|
+
"Finding available currency pairs",
|
|
364
|
+
"Forex market exploration",
|
|
365
|
+
"Currency trading setup",
|
|
366
|
+
],
|
|
367
|
+
),
|
|
368
|
+
"forex_quotes": EndpointSemantics(
|
|
369
|
+
client_name="alternative",
|
|
370
|
+
method_name="get_forex_quotes",
|
|
371
|
+
natural_description=(
|
|
372
|
+
"Get real-time quotes for all available " "forex currency pairs"
|
|
373
|
+
),
|
|
374
|
+
example_queries=[
|
|
375
|
+
"Get all forex rates",
|
|
376
|
+
"Show current exchange rates",
|
|
377
|
+
"What are the current forex prices?",
|
|
378
|
+
"Get all currency quotes",
|
|
379
|
+
],
|
|
380
|
+
related_terms=[
|
|
381
|
+
"exchange rates",
|
|
382
|
+
"forex rates",
|
|
383
|
+
"currency quotes",
|
|
384
|
+
"fx prices",
|
|
385
|
+
"current rates",
|
|
386
|
+
"live quotes",
|
|
387
|
+
],
|
|
388
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
389
|
+
sub_category="Forex",
|
|
390
|
+
parameter_hints={},
|
|
391
|
+
response_hints={
|
|
392
|
+
"price": ResponseFieldInfo(
|
|
393
|
+
description="Current exchange rate",
|
|
394
|
+
examples=["1.2150", "110.75"],
|
|
395
|
+
related_terms=["rate", "exchange rate", "forex rate"],
|
|
396
|
+
),
|
|
397
|
+
},
|
|
398
|
+
use_cases=[
|
|
399
|
+
"Currency market monitoring",
|
|
400
|
+
"Exchange rate tracking",
|
|
401
|
+
"Global market analysis",
|
|
402
|
+
],
|
|
403
|
+
),
|
|
404
|
+
"forex_quote": EndpointSemantics(
|
|
405
|
+
client_name="alternative",
|
|
406
|
+
method_name="get_forex_quote",
|
|
407
|
+
natural_description="Get detailed real-time quote for a specific currency pair",
|
|
408
|
+
example_queries=[
|
|
409
|
+
"What's the current EUR/USD rate?",
|
|
410
|
+
"Get GBP/JPY quote",
|
|
411
|
+
"Show me the USD/CAD exchange rate",
|
|
412
|
+
"Current forex price",
|
|
413
|
+
],
|
|
414
|
+
related_terms=[
|
|
415
|
+
"exchange rate",
|
|
416
|
+
"forex rate",
|
|
417
|
+
"currency price",
|
|
418
|
+
"fx quote",
|
|
419
|
+
"currency pair",
|
|
420
|
+
"forex market",
|
|
421
|
+
],
|
|
422
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
423
|
+
sub_category="Forex",
|
|
424
|
+
parameter_hints={"symbol": SYMBOL_HINTS["forex"]},
|
|
425
|
+
response_hints={
|
|
426
|
+
"price": ResponseFieldInfo(
|
|
427
|
+
description="Current exchange rate",
|
|
428
|
+
examples=["1.2150", "110.75"],
|
|
429
|
+
related_terms=["rate", "exchange rate", "forex rate"],
|
|
430
|
+
),
|
|
431
|
+
"bid": ResponseFieldInfo(
|
|
432
|
+
description="Current bid price",
|
|
433
|
+
examples=["1.2148", "110.73"],
|
|
434
|
+
related_terms=["bid price", "buying price"],
|
|
435
|
+
),
|
|
436
|
+
"ask": ResponseFieldInfo(
|
|
437
|
+
description="Current ask price",
|
|
438
|
+
examples=["1.2152", "110.77"],
|
|
439
|
+
related_terms=["ask price", "selling price"],
|
|
440
|
+
),
|
|
441
|
+
},
|
|
442
|
+
use_cases=[
|
|
443
|
+
"Currency trading",
|
|
444
|
+
"Exchange rate monitoring",
|
|
445
|
+
"Forex market analysis",
|
|
446
|
+
"Currency conversion",
|
|
447
|
+
],
|
|
448
|
+
),
|
|
449
|
+
"forex_historical": EndpointSemantics(
|
|
450
|
+
client_name="alternative",
|
|
451
|
+
method_name="get_forex_historical",
|
|
452
|
+
natural_description="Get historical exchange rate data for a currency pair",
|
|
453
|
+
example_queries=[
|
|
454
|
+
"Get EUR/USD price history",
|
|
455
|
+
"Show historical forex rates",
|
|
456
|
+
"Past exchange rates for GBP/JPY",
|
|
457
|
+
"Historical currency data",
|
|
458
|
+
],
|
|
459
|
+
related_terms=[
|
|
460
|
+
"historical rates",
|
|
461
|
+
"past prices",
|
|
462
|
+
"exchange rate history",
|
|
463
|
+
"forex history",
|
|
464
|
+
"currency trends",
|
|
465
|
+
"historical data",
|
|
466
|
+
],
|
|
467
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
468
|
+
sub_category="Forex",
|
|
469
|
+
parameter_hints={
|
|
470
|
+
"symbol": SYMBOL_HINTS["forex"],
|
|
471
|
+
"start_date": DATE_HINTS["start_date"],
|
|
472
|
+
"end_date": DATE_HINTS["end_date"],
|
|
473
|
+
},
|
|
474
|
+
response_hints={
|
|
475
|
+
"date": ResponseFieldInfo(
|
|
476
|
+
description="Trading date",
|
|
477
|
+
examples=["2023-12-20"],
|
|
478
|
+
related_terms=["date", "trading day"],
|
|
479
|
+
),
|
|
480
|
+
"rate": ResponseFieldInfo(
|
|
481
|
+
description="Exchange rate",
|
|
482
|
+
examples=["1.2150", "110.75"],
|
|
483
|
+
related_terms=["price", "exchange rate", "rate"],
|
|
484
|
+
),
|
|
485
|
+
},
|
|
486
|
+
use_cases=[
|
|
487
|
+
"Currency trend analysis",
|
|
488
|
+
"Historical rate analysis",
|
|
489
|
+
"Forex backtesting",
|
|
490
|
+
"Market research",
|
|
491
|
+
],
|
|
492
|
+
),
|
|
493
|
+
"forex_intraday": EndpointSemantics(
|
|
494
|
+
client_name="alternative",
|
|
495
|
+
method_name="get_forex_intraday",
|
|
496
|
+
natural_description="Get intraday exchange rate data at specified intervals",
|
|
497
|
+
example_queries=[
|
|
498
|
+
"Get minute-by-minute EUR/USD rates",
|
|
499
|
+
"Show hourly forex prices",
|
|
500
|
+
"5-minute GBP/JPY data",
|
|
501
|
+
"Intraday currency rates",
|
|
502
|
+
],
|
|
503
|
+
related_terms=[
|
|
504
|
+
"intraday rates",
|
|
505
|
+
"minute data",
|
|
506
|
+
"hourly rates",
|
|
507
|
+
"high-frequency",
|
|
508
|
+
"detailed rates",
|
|
509
|
+
"short-term",
|
|
510
|
+
],
|
|
511
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
512
|
+
sub_category="Forex",
|
|
513
|
+
parameter_hints={
|
|
514
|
+
"symbol": SYMBOL_HINTS["forex"],
|
|
515
|
+
"interval": INTERVAL_HINT,
|
|
516
|
+
},
|
|
517
|
+
response_hints={
|
|
518
|
+
"datetime": ResponseFieldInfo(
|
|
519
|
+
description="Rate timestamp",
|
|
520
|
+
examples=["2024-01-20 14:30:00"],
|
|
521
|
+
related_terms=["time", "timestamp"],
|
|
522
|
+
),
|
|
523
|
+
"rate": ResponseFieldInfo(
|
|
524
|
+
description="Exchange rate",
|
|
525
|
+
examples=["1.2150", "110.75"],
|
|
526
|
+
related_terms=["price", "rate", "exchange rate"],
|
|
527
|
+
),
|
|
528
|
+
},
|
|
529
|
+
use_cases=[
|
|
530
|
+
"Intraday trading",
|
|
531
|
+
"High-frequency analysis",
|
|
532
|
+
"Real-time monitoring",
|
|
533
|
+
"Short-term trading",
|
|
534
|
+
],
|
|
535
|
+
),
|
|
536
|
+
# Commodities endpoints
|
|
537
|
+
"commodities_list": EndpointSemantics(
|
|
538
|
+
client_name="alternative",
|
|
539
|
+
method_name="get_commodities_list",
|
|
540
|
+
natural_description="Get a list of all available commodities",
|
|
541
|
+
example_queries=[
|
|
542
|
+
"What commodities are available?",
|
|
543
|
+
"Show commodity symbols",
|
|
544
|
+
"List tradable commodities",
|
|
545
|
+
"Available commodity markets",
|
|
546
|
+
],
|
|
547
|
+
related_terms=[
|
|
548
|
+
"commodities",
|
|
549
|
+
"raw materials",
|
|
550
|
+
"futures",
|
|
551
|
+
"commodity markets",
|
|
552
|
+
"trading symbols",
|
|
553
|
+
"available products",
|
|
554
|
+
],
|
|
555
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
556
|
+
sub_category="Commodities",
|
|
557
|
+
parameter_hints={},
|
|
558
|
+
response_hints={
|
|
559
|
+
"symbol": ResponseFieldInfo(
|
|
560
|
+
description="Commodity symbol",
|
|
561
|
+
examples=["GC", "CL", "SI"],
|
|
562
|
+
related_terms=["trading symbol", "commodity code"],
|
|
563
|
+
),
|
|
564
|
+
"name": ResponseFieldInfo(
|
|
565
|
+
description="Commodity name",
|
|
566
|
+
examples=["Gold", "Crude Oil", "Silver"],
|
|
567
|
+
related_terms=["product name", "commodity name"],
|
|
568
|
+
),
|
|
569
|
+
},
|
|
570
|
+
use_cases=[
|
|
571
|
+
"Commodity market exploration",
|
|
572
|
+
"Trading setup",
|
|
573
|
+
"Market research",
|
|
574
|
+
],
|
|
575
|
+
),
|
|
576
|
+
"commodities_quotes": EndpointSemantics(
|
|
577
|
+
client_name="alternative",
|
|
578
|
+
method_name="get_commodities_quotes",
|
|
579
|
+
natural_description="Get current quotes for all available commodities",
|
|
580
|
+
example_queries=[
|
|
581
|
+
"Get all commodity prices",
|
|
582
|
+
"Show current commodity quotes",
|
|
583
|
+
"What are commodity prices now?",
|
|
584
|
+
"Current commodity market rates",
|
|
585
|
+
],
|
|
586
|
+
related_terms=[
|
|
587
|
+
"commodity prices",
|
|
588
|
+
"current quotes",
|
|
589
|
+
"market prices",
|
|
590
|
+
"spot prices",
|
|
591
|
+
"futures prices",
|
|
592
|
+
"live quotes",
|
|
593
|
+
],
|
|
594
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
595
|
+
sub_category="Commodities",
|
|
596
|
+
parameter_hints={},
|
|
597
|
+
response_hints={
|
|
598
|
+
"price": ResponseFieldInfo(
|
|
599
|
+
description="Current price",
|
|
600
|
+
examples=["1875.50", "75.30"],
|
|
601
|
+
related_terms=["current price", "spot price", "market price"],
|
|
602
|
+
),
|
|
603
|
+
},
|
|
604
|
+
use_cases=[
|
|
605
|
+
"Market monitoring",
|
|
606
|
+
"Price tracking",
|
|
607
|
+
"Trading decisions",
|
|
608
|
+
],
|
|
609
|
+
),
|
|
610
|
+
"commodity_quote": EndpointSemantics(
|
|
611
|
+
client_name="alternative",
|
|
612
|
+
method_name="get_commodity_quote",
|
|
613
|
+
natural_description="Get detailed quote for a specific commodity",
|
|
614
|
+
example_queries=[
|
|
615
|
+
"What's the current gold price?",
|
|
616
|
+
"Get oil quote",
|
|
617
|
+
"Show silver market price",
|
|
618
|
+
"Current commodity rate",
|
|
619
|
+
],
|
|
620
|
+
related_terms=[
|
|
621
|
+
"commodity price",
|
|
622
|
+
"spot price",
|
|
623
|
+
"futures price",
|
|
624
|
+
"market quote",
|
|
625
|
+
"current price",
|
|
626
|
+
"trading price",
|
|
627
|
+
],
|
|
628
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
629
|
+
sub_category="Commodities",
|
|
630
|
+
parameter_hints={"symbol": SYMBOL_HINTS["commodity"]},
|
|
631
|
+
response_hints={
|
|
632
|
+
"price": ResponseFieldInfo(
|
|
633
|
+
description="Current price",
|
|
634
|
+
examples=["1875.50", "75.30"],
|
|
635
|
+
related_terms=["spot price", "market price", "current price"],
|
|
636
|
+
),
|
|
637
|
+
},
|
|
638
|
+
use_cases=[
|
|
639
|
+
"Price monitoring",
|
|
640
|
+
"Trading decisions",
|
|
641
|
+
"Market analysis",
|
|
642
|
+
],
|
|
643
|
+
),
|
|
644
|
+
"commodity_historical": EndpointSemantics(
|
|
645
|
+
client_name="alternative",
|
|
646
|
+
method_name="get_commodity_historical",
|
|
647
|
+
natural_description="Get historical price data for a commodity",
|
|
648
|
+
example_queries=[
|
|
649
|
+
"Get gold price history",
|
|
650
|
+
"Historical oil prices",
|
|
651
|
+
"Show past silver prices",
|
|
652
|
+
"Commodity price trends",
|
|
653
|
+
],
|
|
654
|
+
related_terms=[
|
|
655
|
+
"historical prices",
|
|
656
|
+
"price history",
|
|
657
|
+
"past data",
|
|
658
|
+
"historical trading",
|
|
659
|
+
"commodity trends",
|
|
660
|
+
"price data",
|
|
661
|
+
],
|
|
662
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
663
|
+
sub_category="Commodities",
|
|
664
|
+
parameter_hints={
|
|
665
|
+
"symbol": SYMBOL_HINTS["commodity"],
|
|
666
|
+
"start_date": DATE_HINTS["start_date"],
|
|
667
|
+
"end_date": DATE_HINTS["end_date"],
|
|
668
|
+
},
|
|
669
|
+
response_hints={
|
|
670
|
+
"date": ResponseFieldInfo(
|
|
671
|
+
description="Trading date",
|
|
672
|
+
examples=["2023-12-20"],
|
|
673
|
+
related_terms=["date", "trading day"],
|
|
674
|
+
),
|
|
675
|
+
"price": ResponseFieldInfo(
|
|
676
|
+
description="Closing price",
|
|
677
|
+
examples=["1875.50", "75.30"],
|
|
678
|
+
related_terms=["close", "settlement price", "closing price"],
|
|
679
|
+
),
|
|
680
|
+
},
|
|
681
|
+
use_cases=[
|
|
682
|
+
"Historical analysis",
|
|
683
|
+
"Trend research",
|
|
684
|
+
"Price forecasting",
|
|
685
|
+
"Market studies",
|
|
686
|
+
],
|
|
687
|
+
),
|
|
688
|
+
"commodity_intraday": EndpointSemantics(
|
|
689
|
+
client_name="alternative",
|
|
690
|
+
method_name="get_commodity_intraday",
|
|
691
|
+
natural_description="Get intraday price data for commodities",
|
|
692
|
+
example_queries=[
|
|
693
|
+
"Get minute-by-minute gold prices",
|
|
694
|
+
"Show hourly oil data",
|
|
695
|
+
"Get silver intraday prices",
|
|
696
|
+
"5-minute commodity data",
|
|
697
|
+
],
|
|
698
|
+
related_terms=[
|
|
699
|
+
"intraday prices",
|
|
700
|
+
"minute data",
|
|
701
|
+
"hourly prices",
|
|
702
|
+
"high frequency",
|
|
703
|
+
"real-time data",
|
|
704
|
+
"price updates",
|
|
705
|
+
],
|
|
706
|
+
category=SemanticCategory.ALTERNATIVE_DATA,
|
|
707
|
+
sub_category="Commodities",
|
|
708
|
+
parameter_hints={
|
|
709
|
+
"symbol": SYMBOL_HINTS["commodity"],
|
|
710
|
+
"interval": INTERVAL_HINT,
|
|
711
|
+
},
|
|
712
|
+
response_hints={
|
|
713
|
+
"datetime": ResponseFieldInfo(
|
|
714
|
+
description="Price timestamp",
|
|
715
|
+
examples=["2024-01-20 14:30:00"],
|
|
716
|
+
related_terms=["timestamp", "time", "date"],
|
|
717
|
+
),
|
|
718
|
+
"price": ResponseFieldInfo(
|
|
719
|
+
description="Price at interval",
|
|
720
|
+
examples=["1875.50", "75.30"],
|
|
721
|
+
related_terms=["price", "rate", "value"],
|
|
722
|
+
),
|
|
723
|
+
"volume": ResponseFieldInfo(
|
|
724
|
+
description="Trading volume",
|
|
725
|
+
examples=["1250", "3500"],
|
|
726
|
+
related_terms=["volume", "trades", "activity"],
|
|
727
|
+
),
|
|
728
|
+
},
|
|
729
|
+
use_cases=[
|
|
730
|
+
"Day trading",
|
|
731
|
+
"High-frequency trading",
|
|
732
|
+
"Market monitoring",
|
|
733
|
+
"Technical analysis",
|
|
734
|
+
"Price tracking",
|
|
735
|
+
],
|
|
736
|
+
),
|
|
737
|
+
}
|