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,711 @@
|
|
|
1
|
+
# company/endpoints.py
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from fmp_data.company.models import (
|
|
5
|
+
AnalystEstimate,
|
|
6
|
+
AnalystRecommendation,
|
|
7
|
+
CompanyCoreInformation,
|
|
8
|
+
CompanyExecutive,
|
|
9
|
+
CompanyNote,
|
|
10
|
+
CompanyProfile,
|
|
11
|
+
EmployeeCount,
|
|
12
|
+
ExecutiveCompensation,
|
|
13
|
+
GeographicRevenueSegment,
|
|
14
|
+
HistoricalData,
|
|
15
|
+
HistoricalShareFloat,
|
|
16
|
+
IntradayPrice,
|
|
17
|
+
PriceTarget,
|
|
18
|
+
PriceTargetConsensus,
|
|
19
|
+
PriceTargetSummary,
|
|
20
|
+
ProductRevenueSegment,
|
|
21
|
+
Quote,
|
|
22
|
+
ShareFloat,
|
|
23
|
+
SimpleQuote,
|
|
24
|
+
SymbolChange,
|
|
25
|
+
UpgradeDowngrade,
|
|
26
|
+
UpgradeDowngradeConsensus,
|
|
27
|
+
)
|
|
28
|
+
from fmp_data.company.schema import (
|
|
29
|
+
BaseSymbolArg,
|
|
30
|
+
GeographicRevenueArgs,
|
|
31
|
+
LogoArgs,
|
|
32
|
+
ProductRevenueArgs,
|
|
33
|
+
SymbolChangesArgs,
|
|
34
|
+
)
|
|
35
|
+
from fmp_data.models import (
|
|
36
|
+
APIVersion,
|
|
37
|
+
Endpoint,
|
|
38
|
+
EndpointParam,
|
|
39
|
+
HTTPMethod,
|
|
40
|
+
MarketCapitalization,
|
|
41
|
+
ParamLocation,
|
|
42
|
+
ParamType,
|
|
43
|
+
URLType,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
QUOTE: Endpoint = Endpoint(
|
|
47
|
+
name="quote",
|
|
48
|
+
path="quote/{symbol}",
|
|
49
|
+
version=APIVersion.V3,
|
|
50
|
+
description="Get real-time stock quote",
|
|
51
|
+
mandatory_params=[
|
|
52
|
+
EndpointParam(
|
|
53
|
+
name="symbol",
|
|
54
|
+
location=ParamLocation.PATH,
|
|
55
|
+
param_type=ParamType.STRING,
|
|
56
|
+
required=True,
|
|
57
|
+
description="Stock symbol (ticker)",
|
|
58
|
+
)
|
|
59
|
+
],
|
|
60
|
+
optional_params=[],
|
|
61
|
+
response_model=Quote,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
SIMPLE_QUOTE: Endpoint = Endpoint(
|
|
65
|
+
name="simple_quote",
|
|
66
|
+
path="quote-short/{symbol}",
|
|
67
|
+
version=APIVersion.V3,
|
|
68
|
+
description="Get simple stock quote",
|
|
69
|
+
mandatory_params=[
|
|
70
|
+
EndpointParam(
|
|
71
|
+
name="symbol",
|
|
72
|
+
location=ParamLocation.PATH,
|
|
73
|
+
param_type=ParamType.STRING,
|
|
74
|
+
required=True,
|
|
75
|
+
description="Stock symbol (ticker)",
|
|
76
|
+
)
|
|
77
|
+
],
|
|
78
|
+
optional_params=[],
|
|
79
|
+
response_model=SimpleQuote,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
HISTORICAL_PRICE: Endpoint = Endpoint(
|
|
83
|
+
name="historical_price",
|
|
84
|
+
path="historical-price-full/{symbol}",
|
|
85
|
+
version=APIVersion.V3,
|
|
86
|
+
description="Get historical daily price data",
|
|
87
|
+
mandatory_params=[
|
|
88
|
+
EndpointParam(
|
|
89
|
+
name="symbol",
|
|
90
|
+
location=ParamLocation.PATH,
|
|
91
|
+
param_type=ParamType.STRING,
|
|
92
|
+
required=True,
|
|
93
|
+
description="Stock symbol (ticker)",
|
|
94
|
+
)
|
|
95
|
+
],
|
|
96
|
+
optional_params=[
|
|
97
|
+
EndpointParam(
|
|
98
|
+
name="start_date",
|
|
99
|
+
location=ParamLocation.QUERY,
|
|
100
|
+
param_type=ParamType.DATE,
|
|
101
|
+
required=True,
|
|
102
|
+
description="Start date",
|
|
103
|
+
alias="from",
|
|
104
|
+
),
|
|
105
|
+
EndpointParam(
|
|
106
|
+
name="end_date",
|
|
107
|
+
location=ParamLocation.QUERY,
|
|
108
|
+
param_type=ParamType.DATE,
|
|
109
|
+
required=True,
|
|
110
|
+
description="End date",
|
|
111
|
+
alias="to",
|
|
112
|
+
),
|
|
113
|
+
],
|
|
114
|
+
response_model=HistoricalData,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
INTRADAY_PRICE: Endpoint = Endpoint(
|
|
118
|
+
name="intraday_price",
|
|
119
|
+
path="historical-chart/{interval}/{symbol}",
|
|
120
|
+
version=APIVersion.V3,
|
|
121
|
+
description="Get intraday price data",
|
|
122
|
+
mandatory_params=[
|
|
123
|
+
EndpointParam(
|
|
124
|
+
name="interval",
|
|
125
|
+
location=ParamLocation.PATH,
|
|
126
|
+
param_type=ParamType.STRING,
|
|
127
|
+
required=True,
|
|
128
|
+
description="Time interval (1min, 5min, 15min, 30min, 1hour, 4hour)",
|
|
129
|
+
),
|
|
130
|
+
EndpointParam(
|
|
131
|
+
name="symbol",
|
|
132
|
+
location=ParamLocation.PATH,
|
|
133
|
+
param_type=ParamType.STRING,
|
|
134
|
+
required=True,
|
|
135
|
+
description="Stock symbol (ticker)",
|
|
136
|
+
),
|
|
137
|
+
],
|
|
138
|
+
optional_params=[],
|
|
139
|
+
response_model=IntradayPrice,
|
|
140
|
+
)
|
|
141
|
+
# Profile Endpoints
|
|
142
|
+
PROFILE: Endpoint = Endpoint(
|
|
143
|
+
name="profile",
|
|
144
|
+
path="profile/{symbol}",
|
|
145
|
+
version=APIVersion.V3,
|
|
146
|
+
url_type=URLType.API,
|
|
147
|
+
method=HTTPMethod.GET,
|
|
148
|
+
description=(
|
|
149
|
+
"Get comprehensive company profile including financial metrics, description, "
|
|
150
|
+
"sector, industry, contact information, and basic market data. Provides a "
|
|
151
|
+
"complete overview of a company's business and current market status."
|
|
152
|
+
),
|
|
153
|
+
mandatory_params=[
|
|
154
|
+
EndpointParam(
|
|
155
|
+
name="symbol",
|
|
156
|
+
location=ParamLocation.PATH,
|
|
157
|
+
param_type=ParamType.STRING,
|
|
158
|
+
required=True,
|
|
159
|
+
description="Stock symbol (ticker)",
|
|
160
|
+
)
|
|
161
|
+
],
|
|
162
|
+
optional_params=[],
|
|
163
|
+
response_model=CompanyProfile,
|
|
164
|
+
arg_model=BaseSymbolArg,
|
|
165
|
+
example_queries=[
|
|
166
|
+
"Get Apple's company profile",
|
|
167
|
+
"Show me Microsoft's company information",
|
|
168
|
+
"What is Tesla's market cap and industry?",
|
|
169
|
+
"Tell me about NVDA's business profile",
|
|
170
|
+
"Get detailed information about Amazon",
|
|
171
|
+
],
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
CORE_INFORMATION: Endpoint = Endpoint(
|
|
175
|
+
name="core_information",
|
|
176
|
+
path="company-core-information",
|
|
177
|
+
version=APIVersion.V4,
|
|
178
|
+
url_type=URLType.API,
|
|
179
|
+
method=HTTPMethod.GET,
|
|
180
|
+
description=(
|
|
181
|
+
"Retrieve essential company information including CIK, exchange, SIC code, "
|
|
182
|
+
"state of incorporation, and fiscal year details. Provides core regulatory "
|
|
183
|
+
"and administrative information about a company."
|
|
184
|
+
),
|
|
185
|
+
mandatory_params=[
|
|
186
|
+
EndpointParam(
|
|
187
|
+
name="symbol",
|
|
188
|
+
location=ParamLocation.QUERY,
|
|
189
|
+
param_type=ParamType.STRING,
|
|
190
|
+
required=True,
|
|
191
|
+
description="Stock symbol (ticker)",
|
|
192
|
+
)
|
|
193
|
+
],
|
|
194
|
+
optional_params=[],
|
|
195
|
+
response_model=CompanyCoreInformation,
|
|
196
|
+
arg_model=BaseSymbolArg,
|
|
197
|
+
example_queries=[
|
|
198
|
+
"Get core information for Apple",
|
|
199
|
+
"Show me Tesla's basic company details",
|
|
200
|
+
"What is Microsoft's CIK number?",
|
|
201
|
+
"Find Amazon's incorporation details",
|
|
202
|
+
"Get regulatory information for Google",
|
|
203
|
+
],
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# Search Endpoints
|
|
207
|
+
|
|
208
|
+
# Executive Information Endpoints
|
|
209
|
+
KEY_EXECUTIVES: Endpoint = Endpoint(
|
|
210
|
+
name="key_executives",
|
|
211
|
+
path="key-executives/{symbol}",
|
|
212
|
+
version=APIVersion.V3,
|
|
213
|
+
url_type=URLType.API,
|
|
214
|
+
method=HTTPMethod.GET,
|
|
215
|
+
description=(
|
|
216
|
+
"Get detailed information about a company's key executives including their "
|
|
217
|
+
"names, titles, compensation, and tenure. Provides insights into company "
|
|
218
|
+
"leadership, management structure, and executive compensation."
|
|
219
|
+
),
|
|
220
|
+
mandatory_params=[
|
|
221
|
+
EndpointParam(
|
|
222
|
+
name="symbol",
|
|
223
|
+
location=ParamLocation.PATH,
|
|
224
|
+
param_type=ParamType.STRING,
|
|
225
|
+
required=True,
|
|
226
|
+
description="Stock symbol (ticker)",
|
|
227
|
+
)
|
|
228
|
+
],
|
|
229
|
+
optional_params=[],
|
|
230
|
+
response_model=CompanyExecutive,
|
|
231
|
+
arg_model=BaseSymbolArg,
|
|
232
|
+
example_queries=[
|
|
233
|
+
"Who are Apple's key executives?",
|
|
234
|
+
"Get Microsoft's management team",
|
|
235
|
+
"Show me Tesla's executive leadership",
|
|
236
|
+
"List Amazon's top executives and their compensation",
|
|
237
|
+
"Get information about Google's CEO and management",
|
|
238
|
+
],
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
EXECUTIVE_COMPENSATION: Endpoint = Endpoint(
|
|
242
|
+
name="executive_compensation",
|
|
243
|
+
path="governance/executive_compensation",
|
|
244
|
+
version=APIVersion.V4,
|
|
245
|
+
description=(
|
|
246
|
+
"Get detailed executive compensation data including salary, bonuses, stock "
|
|
247
|
+
"awards, and total compensation. Provides insights into how company "
|
|
248
|
+
"executives are compensated."
|
|
249
|
+
),
|
|
250
|
+
mandatory_params=[
|
|
251
|
+
EndpointParam(
|
|
252
|
+
name="symbol",
|
|
253
|
+
location=ParamLocation.QUERY,
|
|
254
|
+
param_type=ParamType.STRING,
|
|
255
|
+
required=True,
|
|
256
|
+
description="Company symbol",
|
|
257
|
+
)
|
|
258
|
+
],
|
|
259
|
+
optional_params=[],
|
|
260
|
+
response_model=ExecutiveCompensation,
|
|
261
|
+
arg_model=BaseSymbolArg,
|
|
262
|
+
example_queries=[
|
|
263
|
+
"What is Apple CEO's compensation?",
|
|
264
|
+
"Show Microsoft executive pay",
|
|
265
|
+
"Get Tesla executive compensation details",
|
|
266
|
+
"How much are Amazon executives paid?",
|
|
267
|
+
"Find Google executive salary information",
|
|
268
|
+
],
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
EMPLOYEE_COUNT: Endpoint = Endpoint(
|
|
272
|
+
name="employee_count",
|
|
273
|
+
path="historical/employee_count",
|
|
274
|
+
version=APIVersion.V4,
|
|
275
|
+
url_type=URLType.API,
|
|
276
|
+
method=HTTPMethod.GET,
|
|
277
|
+
description=(
|
|
278
|
+
"Get historical employee count data for a company. Tracks how the company's "
|
|
279
|
+
"workforce has changed over time, providing insights into company growth "
|
|
280
|
+
"and operational scale."
|
|
281
|
+
),
|
|
282
|
+
mandatory_params=[
|
|
283
|
+
EndpointParam(
|
|
284
|
+
name="symbol",
|
|
285
|
+
location=ParamLocation.QUERY,
|
|
286
|
+
param_type=ParamType.STRING,
|
|
287
|
+
required=True,
|
|
288
|
+
description="Stock symbol (ticker)",
|
|
289
|
+
)
|
|
290
|
+
],
|
|
291
|
+
optional_params=[],
|
|
292
|
+
response_model=EmployeeCount,
|
|
293
|
+
arg_model=BaseSymbolArg,
|
|
294
|
+
example_queries=[
|
|
295
|
+
"How many employees does Apple have?",
|
|
296
|
+
"Show Microsoft's employee count history",
|
|
297
|
+
"Get Tesla's workforce numbers over time",
|
|
298
|
+
"Track Amazon's employee growth",
|
|
299
|
+
"What is Google's historical employee count?",
|
|
300
|
+
],
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
# Symbol Related Endpoints
|
|
304
|
+
COMPANY_LOGO: Endpoint = Endpoint(
|
|
305
|
+
name="company_logo",
|
|
306
|
+
path="{symbol}.png",
|
|
307
|
+
version=None,
|
|
308
|
+
url_type=URLType.IMAGE,
|
|
309
|
+
method=HTTPMethod.GET,
|
|
310
|
+
description=(
|
|
311
|
+
"Get the company's official logo image. Returns the URL to the company's "
|
|
312
|
+
"logo in PNG format. Useful for displaying company branding, creating "
|
|
313
|
+
"visual company profiles, or enhancing financial dashboards with "
|
|
314
|
+
"company identification."
|
|
315
|
+
),
|
|
316
|
+
mandatory_params=[
|
|
317
|
+
EndpointParam(
|
|
318
|
+
name="symbol",
|
|
319
|
+
location=ParamLocation.PATH,
|
|
320
|
+
param_type=ParamType.STRING,
|
|
321
|
+
required=True,
|
|
322
|
+
description="Stock symbol (ticker)",
|
|
323
|
+
)
|
|
324
|
+
],
|
|
325
|
+
optional_params=[],
|
|
326
|
+
response_model=str,
|
|
327
|
+
arg_model=LogoArgs,
|
|
328
|
+
example_queries=[
|
|
329
|
+
"Get Apple's company logo",
|
|
330
|
+
"Show me the logo for Microsoft",
|
|
331
|
+
"Download Tesla's logo",
|
|
332
|
+
"Fetch the company logo for Amazon",
|
|
333
|
+
"Get Google's brand image",
|
|
334
|
+
],
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
# Company Operational Data
|
|
338
|
+
COMPANY_NOTES: Endpoint = Endpoint(
|
|
339
|
+
name="company_notes",
|
|
340
|
+
path="company-notes",
|
|
341
|
+
version=APIVersion.V4,
|
|
342
|
+
url_type=URLType.API,
|
|
343
|
+
method=HTTPMethod.GET,
|
|
344
|
+
description=(
|
|
345
|
+
"Retrieve company financial notes and disclosures. These notes provide "
|
|
346
|
+
"additional context and detailed explanations about company financial "
|
|
347
|
+
"statements and important events."
|
|
348
|
+
),
|
|
349
|
+
mandatory_params=[
|
|
350
|
+
EndpointParam(
|
|
351
|
+
name="symbol",
|
|
352
|
+
location=ParamLocation.QUERY,
|
|
353
|
+
param_type=ParamType.STRING,
|
|
354
|
+
required=True,
|
|
355
|
+
description="Stock symbol (ticker)",
|
|
356
|
+
)
|
|
357
|
+
],
|
|
358
|
+
optional_params=[],
|
|
359
|
+
response_model=CompanyNote,
|
|
360
|
+
arg_model=BaseSymbolArg,
|
|
361
|
+
example_queries=[
|
|
362
|
+
"Get financial notes for Apple",
|
|
363
|
+
"Show me Microsoft's company disclosures",
|
|
364
|
+
"What are Tesla's financial statement notes?",
|
|
365
|
+
"Find important disclosures for Amazon",
|
|
366
|
+
"Get company notes for Google",
|
|
367
|
+
],
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
HISTORICAL_SHARE_FLOAT: Endpoint = Endpoint(
|
|
371
|
+
name="historical_share_float",
|
|
372
|
+
path="historical/shares_float",
|
|
373
|
+
version=APIVersion.V4,
|
|
374
|
+
description=(
|
|
375
|
+
"Get historical share float data showing how the number of tradable shares "
|
|
376
|
+
"has changed over time. Useful for analyzing changes in stock liquidity and "
|
|
377
|
+
"institutional ownership patterns over time."
|
|
378
|
+
),
|
|
379
|
+
mandatory_params=[
|
|
380
|
+
EndpointParam(
|
|
381
|
+
name="symbol",
|
|
382
|
+
location=ParamLocation.QUERY,
|
|
383
|
+
param_type=ParamType.STRING,
|
|
384
|
+
required=True,
|
|
385
|
+
description="Company symbol",
|
|
386
|
+
)
|
|
387
|
+
],
|
|
388
|
+
optional_params=[],
|
|
389
|
+
response_model=HistoricalShareFloat,
|
|
390
|
+
arg_model=BaseSymbolArg,
|
|
391
|
+
example_queries=[
|
|
392
|
+
"Show historical share float for Tesla",
|
|
393
|
+
"How has Apple's share float changed over time?",
|
|
394
|
+
"Get Microsoft's historical floating shares",
|
|
395
|
+
"Track Amazon's share float history",
|
|
396
|
+
"Show changes in Google's share float",
|
|
397
|
+
],
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
# Revenue Analysis Endpoints
|
|
401
|
+
PRODUCT_REVENUE_SEGMENTATION: Endpoint = Endpoint(
|
|
402
|
+
name="product_revenue_segmentation",
|
|
403
|
+
path="revenue-product-segmentation",
|
|
404
|
+
version=APIVersion.V4,
|
|
405
|
+
description=(
|
|
406
|
+
"Get detailed revenue segmentation by product or service line. Shows how "
|
|
407
|
+
"company revenue is distributed across different products and services, "
|
|
408
|
+
"helping understand revenue diversification and key product contributions."
|
|
409
|
+
),
|
|
410
|
+
mandatory_params=[
|
|
411
|
+
EndpointParam(
|
|
412
|
+
name="symbol",
|
|
413
|
+
location=ParamLocation.QUERY,
|
|
414
|
+
param_type=ParamType.STRING,
|
|
415
|
+
required=True,
|
|
416
|
+
description="Company symbol",
|
|
417
|
+
),
|
|
418
|
+
EndpointParam(
|
|
419
|
+
name="structure",
|
|
420
|
+
location=ParamLocation.QUERY,
|
|
421
|
+
param_type=ParamType.STRING,
|
|
422
|
+
required=True,
|
|
423
|
+
description="Data structure format",
|
|
424
|
+
default="flat",
|
|
425
|
+
),
|
|
426
|
+
EndpointParam(
|
|
427
|
+
name="period",
|
|
428
|
+
location=ParamLocation.QUERY,
|
|
429
|
+
param_type=ParamType.STRING,
|
|
430
|
+
required=True,
|
|
431
|
+
description="Annual or quarterly data",
|
|
432
|
+
default="annual",
|
|
433
|
+
valid_values=["annual", "quarter"],
|
|
434
|
+
),
|
|
435
|
+
],
|
|
436
|
+
optional_params=[],
|
|
437
|
+
response_model=ProductRevenueSegment,
|
|
438
|
+
arg_model=ProductRevenueArgs,
|
|
439
|
+
example_queries=[
|
|
440
|
+
"Show Apple's revenue by product",
|
|
441
|
+
"How is Microsoft's revenue split between products?",
|
|
442
|
+
"Get Tesla's product revenue breakdown",
|
|
443
|
+
"What are Amazon's main revenue sources?",
|
|
444
|
+
"Show Google's revenue by service line",
|
|
445
|
+
],
|
|
446
|
+
)
|
|
447
|
+
|
|
448
|
+
GEOGRAPHIC_REVENUE_SEGMENTATION: Endpoint = Endpoint(
|
|
449
|
+
name="geographic_revenue_segmentation",
|
|
450
|
+
path="revenue-geographic-segmentation",
|
|
451
|
+
version=APIVersion.V4,
|
|
452
|
+
description=(
|
|
453
|
+
"Get revenue segmentation by geographic region. Shows how company revenue "
|
|
454
|
+
"is distributed across different countries and regions, providing insights "
|
|
455
|
+
"into geographical diversification and market exposure."
|
|
456
|
+
),
|
|
457
|
+
mandatory_params=[
|
|
458
|
+
EndpointParam(
|
|
459
|
+
name="symbol",
|
|
460
|
+
location=ParamLocation.QUERY,
|
|
461
|
+
param_type=ParamType.STRING,
|
|
462
|
+
required=True,
|
|
463
|
+
description="Company symbol",
|
|
464
|
+
),
|
|
465
|
+
EndpointParam(
|
|
466
|
+
name="structure",
|
|
467
|
+
location=ParamLocation.QUERY,
|
|
468
|
+
param_type=ParamType.STRING,
|
|
469
|
+
required=True,
|
|
470
|
+
description="Data structure format",
|
|
471
|
+
default="flat",
|
|
472
|
+
),
|
|
473
|
+
],
|
|
474
|
+
optional_params=[],
|
|
475
|
+
response_model=GeographicRevenueSegment,
|
|
476
|
+
arg_model=GeographicRevenueArgs,
|
|
477
|
+
example_queries=[
|
|
478
|
+
"Show Apple's revenue by region",
|
|
479
|
+
"How is Microsoft's revenue split geographically?",
|
|
480
|
+
"Get Tesla's revenue by country",
|
|
481
|
+
"What are Amazon's revenue sources by region?",
|
|
482
|
+
"Show Google's geographic revenue distribution",
|
|
483
|
+
],
|
|
484
|
+
)
|
|
485
|
+
|
|
486
|
+
SYMBOL_CHANGES: Endpoint = Endpoint(
|
|
487
|
+
name="symbol_changes",
|
|
488
|
+
path="symbol_change",
|
|
489
|
+
version=APIVersion.V4,
|
|
490
|
+
description=(
|
|
491
|
+
"Get historical record of company symbol changes. Tracks when and why "
|
|
492
|
+
"companies changed their ticker symbols, useful for maintaining accurate "
|
|
493
|
+
"historical data and understanding corporate actions."
|
|
494
|
+
),
|
|
495
|
+
mandatory_params=[],
|
|
496
|
+
optional_params=[],
|
|
497
|
+
response_model=SymbolChange,
|
|
498
|
+
arg_model=SymbolChangesArgs,
|
|
499
|
+
example_queries=[
|
|
500
|
+
"Show recent stock symbol changes",
|
|
501
|
+
"List companies that changed their tickers",
|
|
502
|
+
"Get history of symbol changes",
|
|
503
|
+
"What companies changed their symbols?",
|
|
504
|
+
"Track stock symbol modifications",
|
|
505
|
+
],
|
|
506
|
+
)
|
|
507
|
+
|
|
508
|
+
SHARE_FLOAT: Endpoint = Endpoint(
|
|
509
|
+
name="share_float",
|
|
510
|
+
path="shares_float",
|
|
511
|
+
version=APIVersion.V4,
|
|
512
|
+
description=(
|
|
513
|
+
"Get current share float data including number of shares available for "
|
|
514
|
+
"trading and percentage of total shares outstanding. Important for "
|
|
515
|
+
"understanding stock liquidity and institutional ownership."
|
|
516
|
+
),
|
|
517
|
+
mandatory_params=[
|
|
518
|
+
EndpointParam(
|
|
519
|
+
name="symbol",
|
|
520
|
+
location=ParamLocation.QUERY,
|
|
521
|
+
param_type=ParamType.STRING,
|
|
522
|
+
required=True,
|
|
523
|
+
description="Company symbol",
|
|
524
|
+
)
|
|
525
|
+
],
|
|
526
|
+
optional_params=[],
|
|
527
|
+
response_model=ShareFloat,
|
|
528
|
+
arg_model=BaseSymbolArg,
|
|
529
|
+
example_queries=[
|
|
530
|
+
"What is Apple's share float?",
|
|
531
|
+
"Get Microsoft's floating shares",
|
|
532
|
+
"Show Tesla's share float percentage",
|
|
533
|
+
"How many Amazon shares are floating?",
|
|
534
|
+
"Get Google's share float information",
|
|
535
|
+
],
|
|
536
|
+
)
|
|
537
|
+
|
|
538
|
+
MARKET_CAP: Endpoint = Endpoint(
|
|
539
|
+
name="market_cap",
|
|
540
|
+
path="market-capitalization/{symbol}",
|
|
541
|
+
version=APIVersion.V3,
|
|
542
|
+
description="Get market capitalization data",
|
|
543
|
+
mandatory_params=[
|
|
544
|
+
EndpointParam(
|
|
545
|
+
name="symbol",
|
|
546
|
+
location=ParamLocation.PATH,
|
|
547
|
+
param_type=ParamType.STRING,
|
|
548
|
+
required=True,
|
|
549
|
+
description="Stock symbol (ticker)",
|
|
550
|
+
)
|
|
551
|
+
],
|
|
552
|
+
optional_params=[],
|
|
553
|
+
response_model=MarketCapitalization,
|
|
554
|
+
)
|
|
555
|
+
|
|
556
|
+
HISTORICAL_MARKET_CAP: Endpoint = Endpoint(
|
|
557
|
+
name="historical_market_cap",
|
|
558
|
+
path="historical-market-capitalization/{symbol}",
|
|
559
|
+
version=APIVersion.V3,
|
|
560
|
+
description="Get historical market capitalization data",
|
|
561
|
+
mandatory_params=[
|
|
562
|
+
EndpointParam(
|
|
563
|
+
name="symbol",
|
|
564
|
+
location=ParamLocation.PATH,
|
|
565
|
+
param_type=ParamType.STRING,
|
|
566
|
+
required=True,
|
|
567
|
+
description="Stock symbol (ticker)",
|
|
568
|
+
)
|
|
569
|
+
],
|
|
570
|
+
optional_params=[],
|
|
571
|
+
response_model=MarketCapitalization,
|
|
572
|
+
)
|
|
573
|
+
PRICE_TARGET: Endpoint = Endpoint(
|
|
574
|
+
name="price_target",
|
|
575
|
+
path="price-target",
|
|
576
|
+
version=APIVersion.V4,
|
|
577
|
+
url_type=URLType.API,
|
|
578
|
+
method=HTTPMethod.GET,
|
|
579
|
+
description="Get price targets",
|
|
580
|
+
mandatory_params=[
|
|
581
|
+
EndpointParam(
|
|
582
|
+
name="symbol",
|
|
583
|
+
location=ParamLocation.QUERY,
|
|
584
|
+
param_type=ParamType.STRING,
|
|
585
|
+
required=True,
|
|
586
|
+
description="Stock symbol",
|
|
587
|
+
)
|
|
588
|
+
],
|
|
589
|
+
optional_params=[],
|
|
590
|
+
response_model=PriceTarget,
|
|
591
|
+
)
|
|
592
|
+
|
|
593
|
+
PRICE_TARGET_SUMMARY: Endpoint = Endpoint(
|
|
594
|
+
name="price_target_summary",
|
|
595
|
+
path="price-target-summary",
|
|
596
|
+
version=APIVersion.V4,
|
|
597
|
+
url_type=URLType.API,
|
|
598
|
+
method=HTTPMethod.GET,
|
|
599
|
+
description="Get price target summary",
|
|
600
|
+
mandatory_params=[
|
|
601
|
+
EndpointParam(
|
|
602
|
+
name="symbol",
|
|
603
|
+
location=ParamLocation.QUERY,
|
|
604
|
+
param_type=ParamType.STRING,
|
|
605
|
+
required=True,
|
|
606
|
+
description="Stock symbol",
|
|
607
|
+
)
|
|
608
|
+
],
|
|
609
|
+
optional_params=[],
|
|
610
|
+
response_model=PriceTargetSummary,
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
PRICE_TARGET_CONSENSUS: Endpoint = Endpoint(
|
|
614
|
+
name="price_target_consensus",
|
|
615
|
+
path="price-target-consensus",
|
|
616
|
+
version=APIVersion.V4,
|
|
617
|
+
url_type=URLType.API,
|
|
618
|
+
method=HTTPMethod.GET,
|
|
619
|
+
description="Get price target consensus",
|
|
620
|
+
mandatory_params=[
|
|
621
|
+
EndpointParam(
|
|
622
|
+
name="symbol",
|
|
623
|
+
location=ParamLocation.QUERY,
|
|
624
|
+
param_type=ParamType.STRING,
|
|
625
|
+
required=True,
|
|
626
|
+
description="Stock symbol",
|
|
627
|
+
)
|
|
628
|
+
],
|
|
629
|
+
optional_params=[],
|
|
630
|
+
response_model=PriceTargetConsensus,
|
|
631
|
+
)
|
|
632
|
+
|
|
633
|
+
ANALYST_ESTIMATES: Endpoint = Endpoint(
|
|
634
|
+
name="analyst_estimates",
|
|
635
|
+
path="analyst-estimates/{symbol}",
|
|
636
|
+
version=APIVersion.V3,
|
|
637
|
+
url_type=URLType.API,
|
|
638
|
+
method=HTTPMethod.GET,
|
|
639
|
+
description="Get analyst estimates",
|
|
640
|
+
mandatory_params=[
|
|
641
|
+
EndpointParam(
|
|
642
|
+
name="symbol",
|
|
643
|
+
location=ParamLocation.PATH,
|
|
644
|
+
param_type=ParamType.STRING,
|
|
645
|
+
required=True,
|
|
646
|
+
description="Stock symbol",
|
|
647
|
+
)
|
|
648
|
+
],
|
|
649
|
+
optional_params=[],
|
|
650
|
+
response_model=AnalystEstimate,
|
|
651
|
+
)
|
|
652
|
+
|
|
653
|
+
ANALYST_RECOMMENDATIONS: Endpoint = Endpoint(
|
|
654
|
+
name="analyst_recommendations",
|
|
655
|
+
path="analyst-stock-recommendations/{symbol}",
|
|
656
|
+
version=APIVersion.V3,
|
|
657
|
+
url_type=URLType.API,
|
|
658
|
+
method=HTTPMethod.GET,
|
|
659
|
+
description="Get analyst recommendations",
|
|
660
|
+
mandatory_params=[
|
|
661
|
+
EndpointParam(
|
|
662
|
+
name="symbol",
|
|
663
|
+
location=ParamLocation.PATH,
|
|
664
|
+
param_type=ParamType.STRING,
|
|
665
|
+
required=True,
|
|
666
|
+
description="Stock symbol",
|
|
667
|
+
)
|
|
668
|
+
],
|
|
669
|
+
optional_params=[],
|
|
670
|
+
response_model=AnalystRecommendation,
|
|
671
|
+
)
|
|
672
|
+
|
|
673
|
+
UPGRADES_DOWNGRADES: Endpoint = Endpoint(
|
|
674
|
+
name="upgrades_downgrades",
|
|
675
|
+
path="upgrades-downgrades",
|
|
676
|
+
version=APIVersion.V4,
|
|
677
|
+
url_type=URLType.API,
|
|
678
|
+
method=HTTPMethod.GET,
|
|
679
|
+
description="Get upgrades and downgrades",
|
|
680
|
+
mandatory_params=[
|
|
681
|
+
EndpointParam(
|
|
682
|
+
name="symbol",
|
|
683
|
+
location=ParamLocation.QUERY,
|
|
684
|
+
param_type=ParamType.STRING,
|
|
685
|
+
required=True,
|
|
686
|
+
description="Stock symbol",
|
|
687
|
+
)
|
|
688
|
+
],
|
|
689
|
+
optional_params=[],
|
|
690
|
+
response_model=UpgradeDowngrade,
|
|
691
|
+
)
|
|
692
|
+
|
|
693
|
+
UPGRADES_DOWNGRADES_CONSENSUS: Endpoint = Endpoint(
|
|
694
|
+
name="upgrades_downgrades_consensus",
|
|
695
|
+
path="upgrades-downgrades-consensus",
|
|
696
|
+
version=APIVersion.V4,
|
|
697
|
+
url_type=URLType.API,
|
|
698
|
+
method=HTTPMethod.GET,
|
|
699
|
+
description="Get upgrades and downgrades consensus",
|
|
700
|
+
mandatory_params=[
|
|
701
|
+
EndpointParam(
|
|
702
|
+
name="symbol",
|
|
703
|
+
location=ParamLocation.QUERY,
|
|
704
|
+
param_type=ParamType.STRING,
|
|
705
|
+
required=True,
|
|
706
|
+
description="Stock symbol",
|
|
707
|
+
)
|
|
708
|
+
],
|
|
709
|
+
optional_params=[],
|
|
710
|
+
response_model=UpgradeDowngradeConsensus,
|
|
711
|
+
)
|