btgsolutions-dataservices-python-client 4.3.0__tar.gz → 4.3.2__tar.gz
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.
- {btgsolutions_dataservices_python_client-4.3.0/btgsolutions_dataservices_python_client.egg-info → btgsolutions_dataservices_python_client-4.3.2}/PKG-INFO +1 -1
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/__init__.py +1 -1
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_catalog.py +207 -39
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_companies.py +16 -3
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_funds.py +8 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_macro_markets.py +36 -9
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_metadata.py +10 -4
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_ownership.py +62 -14
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2/btgsolutions_dataservices_python_client.egg-info}/PKG-INFO +1 -1
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/LICENSE +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/MANIFEST.in +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/README.md +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/config.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/exceptions.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/__init__.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/alternative_data_people.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/authenticator.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/book_scope.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/broker_analytics.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/broker_reference.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/bulk_data.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/company_data.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/corporate_events.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/dataservices_catalog.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/hfn.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/historical_candles.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/historical_candles_crypto.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/intraday_candles.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/intraday_tick_data.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/public_sources.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/quotes.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/reference_data.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/stock_loan.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/ticker_last_event.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/rest/ticker_last_event_polling.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/__init__.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/broker_analytics.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/hfn_websocket_client.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/market_data_feed.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/market_data_websocket_client.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices/websocket/websocket_default_functions.py +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices_python_client.egg-info/SOURCES.txt +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices_python_client.egg-info/dependency_links.txt +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices_python_client.egg-info/requires.txt +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/btgsolutions_dataservices_python_client.egg-info/top_level.txt +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/pyproject.toml +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/requirements.txt +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/setup.cfg +0 -0
- {btgsolutions_dataservices_python_client-4.3.0 → btgsolutions_dataservices_python_client-4.3.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: btgsolutions_dataservices_python_client
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.2
|
|
4
4
|
Summary: Python package containing several classes and data for extracting and manipulating market and trading data.
|
|
5
5
|
Home-page: https://github.com/BTG-Pactual-Solutions/btgsolutions-dataservices-python-client
|
|
6
6
|
Author: BTG Solutions Data Services powered by BTG Pactual Solutions
|
|
@@ -33,10 +33,103 @@ PUBLIC_SOURCES_CONVENTIONS: dict[str, str] = {
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
PUBLIC_SOURCES_DATA_GAPS: dict[str, str] = {
|
|
36
|
+
"get_macro_indicators": (
|
|
37
|
+
"Macro-indicator rows are heterogeneous across sources. Inspect the "
|
|
38
|
+
"returned indicator, source, type/subseries, unit and date fields before "
|
|
39
|
+
"aggregating or comparing values. The metadata endpoint is discovery "
|
|
40
|
+
"help, but accepted aggregate aliases such as ipca can still return "
|
|
41
|
+
"valid rows even when a related granular code such as "
|
|
42
|
+
"ipca_contributions is also listed. Use the returned row fields to "
|
|
43
|
+
"separate aggregate IPCA/Selic observations from contribution or "
|
|
44
|
+
"category rows."
|
|
45
|
+
),
|
|
46
|
+
"sector_taxonomy_labels": (
|
|
47
|
+
"B3 sector, subsector and segment labels are upstream taxonomy labels. "
|
|
48
|
+
"Use the exact strings returned by get_taxonomy or get_company_sector "
|
|
49
|
+
"when calling get_sector_companies; punctuation and spelling variations "
|
|
50
|
+
"can change matches."
|
|
51
|
+
),
|
|
52
|
+
"get_company_board": (
|
|
53
|
+
"For Brazilian companies, body='board' can include Conselho Fiscal rows "
|
|
54
|
+
"alongside Conselho de Administracao rows depending on the filing. For "
|
|
55
|
+
"a board-of-directors answer, filter returned rows by governance_body "
|
|
56
|
+
"or role to keep Conselho de Administracao only. Committee responses "
|
|
57
|
+
"can include broad aggregates such as Outros Comites; do not infer "
|
|
58
|
+
"granular committee names unless they are present in returned fields."
|
|
59
|
+
),
|
|
60
|
+
"get_financial_statements": (
|
|
61
|
+
"company_id may be omitted only for universe-level screens or rankings. "
|
|
62
|
+
"There is no dedicated latest-quarter discovery field; when a requested "
|
|
63
|
+
"quarter returns zero rows, back off to the latest filed quarter and "
|
|
64
|
+
"state which quarter was used. statement_type is a presentation/filter "
|
|
65
|
+
"such as consolidated or individual when supported; DFP/ITR are filing "
|
|
66
|
+
"source concepts and can appear in returned fields, but they are not "
|
|
67
|
+
"the right filter for cross-company consolidated rankings."
|
|
68
|
+
),
|
|
69
|
+
"get_fund_exposures": (
|
|
70
|
+
"Fund exposure dimensions are source-dependent. For Brazilian ETFs, "
|
|
71
|
+
"issuer exposure can be based on ticker-like issuer labels and country "
|
|
72
|
+
"exposure can be empty when the source does not classify country. Use "
|
|
73
|
+
"holdings for constituent-level economic exposure and exposures for "
|
|
74
|
+
"aggregate context."
|
|
75
|
+
),
|
|
76
|
+
"get_fund_lookthrough": (
|
|
77
|
+
"Look-through is useful when a fund holds other funds that can be "
|
|
78
|
+
"expanded. For direct-equity ETFs, look-through can return opaque "
|
|
79
|
+
"asset_key values or zero lookthrough_weight when nested weights cannot "
|
|
80
|
+
"be resolved. In those cases, use get_fund_holdings and "
|
|
81
|
+
"get_fund_exposures for the defensible exposure analysis."
|
|
82
|
+
),
|
|
36
83
|
"get_top_shareholders": (
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
84
|
+
"Top-shareholder snapshots come from the normalized ownership_snapshot "
|
|
85
|
+
"layer. For Brazilian listed companies, CVM/FRE rows are periodic "
|
|
86
|
+
"filing snapshots, often annual or quarterly reference dates. When "
|
|
87
|
+
"reference_date is omitted, the endpoint uses the latest loaded "
|
|
88
|
+
"snapshot per ownership_category; when reference_date is provided, it "
|
|
89
|
+
"must match an exact loaded snapshot date. For Brazilian ownership context, "
|
|
90
|
+
"prefer get_ownership_current, get_ownership_control_group, "
|
|
91
|
+
"get_ownership_free_float and get_ownership_official_notices when this "
|
|
92
|
+
"endpoint returns no rows. "
|
|
93
|
+
"This endpoint does not synthesize top holders from current ownership "
|
|
94
|
+
"or free-float tables. Some responses can include multiple rows for "
|
|
95
|
+
"the same holder across share classes, ownership categories, filings "
|
|
96
|
+
"or source protocols; inspect category, class, protocol/source and "
|
|
97
|
+
"reference date before aggregating percentages."
|
|
98
|
+
),
|
|
99
|
+
"ownership_reporting_dates": (
|
|
100
|
+
"Brazilian ownership and free-float reference_date fields often come "
|
|
101
|
+
"from CVM/FRE reporting periods, fiscal-year bases or parsed IR "
|
|
102
|
+
"structures. They are reporting/reference dates, not necessarily the "
|
|
103
|
+
"calendar date when the data was loaded or a strict as-of timestamp; a "
|
|
104
|
+
"reference_date can be after the current calendar date when it denotes "
|
|
105
|
+
"a filing year/base period."
|
|
106
|
+
),
|
|
107
|
+
"get_ownership_history": (
|
|
108
|
+
"Ownership history uses the same normalized ownership_snapshot layer as "
|
|
109
|
+
"top-shareholders and returns only loaded snapshot reference dates. "
|
|
110
|
+
"For Brazilian listed companies, CVM/FRE snapshots are periodic filing "
|
|
111
|
+
"dates rather than guaranteed calendar month-ends. It can return an "
|
|
112
|
+
"empty snapshots list when the snapshot layer has no rows for the "
|
|
113
|
+
"selected company/date/category filter. Use get_ownership_change_events "
|
|
114
|
+
"and get_ownership_official_notices for event/document timelines when "
|
|
115
|
+
"snapshots are empty; this endpoint does not synthesize history from "
|
|
116
|
+
"notice or current-ownership tables."
|
|
117
|
+
),
|
|
118
|
+
"get_ownership_official_notices": (
|
|
119
|
+
"The response has multiple evidence blocks: official_notices, "
|
|
120
|
+
"ir_page_sources and ir_structures. start_date/end_date filter the "
|
|
121
|
+
"official_notices block; IR page/source metadata or parsed IR "
|
|
122
|
+
"structures can still be returned when that official-notice range is "
|
|
123
|
+
"empty. Use official_notices download_url values with "
|
|
124
|
+
"get_notice_summary; use ir_page_sources/ir_structures as discovery or "
|
|
125
|
+
"parser-status evidence, not as filed notice documents."
|
|
126
|
+
),
|
|
127
|
+
"get_maximum_theoretical_margin": (
|
|
128
|
+
"discount_margin is the B3 haircut/desagio percentage value from the "
|
|
129
|
+
"maximum-theoretical-margin reference file, not a decimal fraction. "
|
|
130
|
+
"base_value is the B3 reference/base value in that file and should not "
|
|
131
|
+
"be treated as a live quote or a credit decision value. Use quotes and "
|
|
132
|
+
"liquidity endpoints separately when contextualizing the margin data."
|
|
40
133
|
),
|
|
41
134
|
"get_beneficial_ownership": (
|
|
42
135
|
"Coverage is UK/US oriented: UK Companies House PSC and US SEC proxy "
|
|
@@ -45,8 +138,13 @@ PUBLIC_SOURCES_DATA_GAPS: dict[str, str] = {
|
|
|
45
138
|
"and free-float endpoints for Brazilian ownership context."
|
|
46
139
|
),
|
|
47
140
|
"get_asset_institutional_holders": (
|
|
48
|
-
"Institutional-holder coverage can be sparse
|
|
49
|
-
"
|
|
141
|
+
"Institutional-holder coverage can be sparse for B3-listed assets and "
|
|
142
|
+
"can return zero rows for tickers that still have fund-holder or ETF "
|
|
143
|
+
"holder coverage. This endpoint reads the precomputed asset-holder "
|
|
144
|
+
"layer and ownership_snapshot fund_holder fallback; it does not run the "
|
|
145
|
+
"live fund-portfolio/ETF holding lookup used by get_asset_fund_holders. "
|
|
146
|
+
"Use get_asset_fund_holders for Brazilian assets when this endpoint is "
|
|
147
|
+
"empty."
|
|
50
148
|
),
|
|
51
149
|
"get_disclosure_documents_repurchase": (
|
|
52
150
|
"Share-repurchase disclosure coverage can be thin for many companies. "
|
|
@@ -62,7 +160,20 @@ PUBLIC_SOURCES_DATA_GAPS: dict[str, str] = {
|
|
|
62
160
|
"get_dpmfi": (
|
|
63
161
|
"DPMFi can be slow when queried without a snapshot or reference-month "
|
|
64
162
|
"filter. Prefer snapshot_date for reproducibility and start_date/end_date "
|
|
65
|
-
"in YYYY-MM when a narrow period is known."
|
|
163
|
+
"in YYYY-MM when a narrow period is known. When snapshot_date is omitted "
|
|
164
|
+
"the latest available snapshot is used; to discover that snapshot for a "
|
|
165
|
+
"reproducible follow-up call, make a narrow latest query and inspect "
|
|
166
|
+
"the returned snapshot/partition date fields."
|
|
167
|
+
),
|
|
168
|
+
"get_dpmfi_composition": (
|
|
169
|
+
"DPMFi PAF composition is a forward projection table. The latest "
|
|
170
|
+
"snapshot usually covers only the two reference months after the latest "
|
|
171
|
+
"official DPMFi stock observation; older or outside-window "
|
|
172
|
+
"start_date/end_date filters can return zero rows. bond_type uses PAF "
|
|
173
|
+
"categories Prefixado, IPCA, Selic or Total, not security acronyms such "
|
|
174
|
+
"as LTN, LFT, NTN-B or NTN-F. Use get_dpmfi for official stock by "
|
|
175
|
+
"security acronym/status and get_dpmfi_composition for PAF projection "
|
|
176
|
+
"composition; do not join bond_type values one-to-one across the two."
|
|
66
177
|
),
|
|
67
178
|
}
|
|
68
179
|
|
|
@@ -86,7 +197,8 @@ PUBLIC_SOURCES_ENDPOINT_RELATIONSHIPS: dict[str, str] = {
|
|
|
86
197
|
"macro_indicator_discovery": (
|
|
87
198
|
"Use AlternativeDataMetadata.get_available_indicators before "
|
|
88
199
|
"AlternativeDataMacroMarkets.get_macro_indicators when the requested "
|
|
89
|
-
"macro series code is uncertain
|
|
200
|
+
"macro series code is uncertain, then inspect the returned rows because "
|
|
201
|
+
"macro endpoints can expose both aggregate and granular series."
|
|
90
202
|
),
|
|
91
203
|
"asset_discovery": (
|
|
92
204
|
"Use AlternativeDataMetadata.get_available_assets to discover asset or "
|
|
@@ -101,7 +213,8 @@ PUBLIC_SOURCES_ENDPOINT_RELATIONSHIPS: dict[str, str] = {
|
|
|
101
213
|
"Use get_taxonomy or get_sectors_summary to understand available B3/CNAE "
|
|
102
214
|
"classification values, get_company_sector to classify one company, and "
|
|
103
215
|
"get_sector_companies to retrieve the peer set for a sector, subsector "
|
|
104
|
-
"or segment."
|
|
216
|
+
"or segment. Pass the exact returned taxonomy labels into "
|
|
217
|
+
"get_sector_companies rather than normalized or guessed strings."
|
|
105
218
|
),
|
|
106
219
|
"document_summary": (
|
|
107
220
|
"Use AlternativeDataCompanies.get_assemblies or "
|
|
@@ -296,13 +409,15 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
296
409
|
"description": (
|
|
297
410
|
"Get the complete sector/classification taxonomy for B3 or CNAE. "
|
|
298
411
|
"Use B3 for exchange sector, subsector and segment hierarchy; use "
|
|
299
|
-
"CNAE for Brazilian economic activity codes."
|
|
412
|
+
"CNAE for Brazilian economic activity codes. Reuse returned labels "
|
|
413
|
+
"exactly when filtering peer companies."
|
|
300
414
|
),
|
|
301
415
|
"parameters": {
|
|
302
416
|
"system": "Classification system, usually 'b3' or 'cnae'.",
|
|
303
417
|
"limit": "Maximum number of taxonomy rows.",
|
|
304
418
|
},
|
|
305
419
|
"relationships": ["sector_peer_set", "sector_market_peer_bridge"],
|
|
420
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["sector_taxonomy_labels"]],
|
|
306
421
|
},
|
|
307
422
|
"AlternativeDataMetadata.get_cnae": {
|
|
308
423
|
"category": "metadata",
|
|
@@ -324,13 +439,15 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
324
439
|
"description": (
|
|
325
440
|
"Get sector classification for a company or listed asset. Rows "
|
|
326
441
|
"include B3 sector, subsector and segment plus registered "
|
|
327
|
-
"headquarters state and municipality when available."
|
|
442
|
+
"headquarters state and municipality when available. Reuse returned "
|
|
443
|
+
"sector labels exactly when building peer sets."
|
|
328
444
|
),
|
|
329
445
|
"parameters": {"identifier": "Ticker, CNPJ, CVM code, ISIN or company name."},
|
|
330
446
|
"relationships": [
|
|
331
447
|
"sector_peer_set", "company_resolution",
|
|
332
448
|
"company_trading_bridge", "sector_market_peer_bridge",
|
|
333
449
|
],
|
|
450
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["sector_taxonomy_labels"]],
|
|
334
451
|
},
|
|
335
452
|
"AlternativeDataMetadata.get_sector_companies": {
|
|
336
453
|
"category": "metadata",
|
|
@@ -339,7 +456,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
339
456
|
"client": "AlternativeDataMetadata",
|
|
340
457
|
"description": (
|
|
341
458
|
"List companies classified in a B3 sector, optionally filtered by "
|
|
342
|
-
"subsector and segment. Use active_only to restrict to active
|
|
459
|
+
"subsector and segment. Use active_only to restrict to active "
|
|
460
|
+
"companies. For reliable matches, pass exact labels returned by "
|
|
461
|
+
"get_taxonomy or get_company_sector."
|
|
343
462
|
),
|
|
344
463
|
"parameters": {
|
|
345
464
|
"sector": "B3 sector name.",
|
|
@@ -349,6 +468,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
349
468
|
"limit": "Maximum number of companies.",
|
|
350
469
|
},
|
|
351
470
|
"relationships": ["sector_peer_set", "sector_market_peer_bridge"],
|
|
471
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["sector_taxonomy_labels"]],
|
|
352
472
|
},
|
|
353
473
|
"AlternativeDataMetadata.get_sectors_summary": {
|
|
354
474
|
"category": "metadata",
|
|
@@ -371,7 +491,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
371
491
|
"description": (
|
|
372
492
|
"Get Brazilian macroeconomic or public fiscal time-series observations. "
|
|
373
493
|
"Indicator values include selic, ipca, ipca_contributions, "
|
|
374
|
-
"ipca_categories, copom, pim, pmc, pms, pnad, gdp, comexstat and
|
|
494
|
+
"ipca_categories, copom, pim, pmc, pms, pnad, gdp, comexstat and "
|
|
495
|
+
"rreo. Returned units, date grains and row fields vary by indicator "
|
|
496
|
+
"and source."
|
|
375
497
|
),
|
|
376
498
|
"parameters": {
|
|
377
499
|
"indicator": "Macro indicator code.",
|
|
@@ -388,6 +510,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
388
510
|
"offset": "Pagination offset.",
|
|
389
511
|
},
|
|
390
512
|
"relationships": ["macro_indicator_discovery", "macro_market_bridge"],
|
|
513
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_macro_indicators"]],
|
|
391
514
|
},
|
|
392
515
|
"AlternativeDataMacroMarkets.get_maximum_theoretical_margin": {
|
|
393
516
|
"category": "market_data_reference",
|
|
@@ -406,13 +529,16 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
406
529
|
"origin": "Optional origin market filter.",
|
|
407
530
|
"start_date": "Start date in YYYY-MM-DD.",
|
|
408
531
|
"end_date": "End date in YYYY-MM-DD.",
|
|
409
|
-
"min_margin": "Lower bound for discount_margin.",
|
|
410
|
-
"max_margin": "Upper bound for discount_margin.",
|
|
532
|
+
"min_margin": "Lower bound for discount_margin percentage value.",
|
|
533
|
+
"max_margin": "Upper bound for discount_margin percentage value.",
|
|
411
534
|
"limit": "Maximum number of rows.",
|
|
412
535
|
"offset": "Pagination offset.",
|
|
413
536
|
},
|
|
414
537
|
"relationships": ["asset_discovery", "company_trading_bridge"],
|
|
415
|
-
"caveats": [
|
|
538
|
+
"caveats": [
|
|
539
|
+
PUBLIC_SOURCES_DATA_GAPS["get_maximum_theoretical_margin"],
|
|
540
|
+
PUBLIC_SOURCES_EXCLUDED_ENDPOINTS["market-data/investor-categories"],
|
|
541
|
+
],
|
|
416
542
|
},
|
|
417
543
|
"AlternativeDataMacroMarkets.get_dpmfi": {
|
|
418
544
|
"category": "macro",
|
|
@@ -421,7 +547,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
421
547
|
"client": "AlternativeDataMacroMarkets",
|
|
422
548
|
"description": (
|
|
423
549
|
"Get monthly stock of DPMFi, Brazilian federal domestic public debt, "
|
|
424
|
-
"by indexer such as LTN, LFT, NTN-B, NTN-F and
|
|
550
|
+
"by security acronym/indexer such as LTN, LFT, NTN-B, NTN-F and "
|
|
551
|
+
"Demais. This is the official/projection/estimated stock series, "
|
|
552
|
+
"not the PAF composition projection."
|
|
425
553
|
),
|
|
426
554
|
"parameters": {
|
|
427
555
|
"start_date": "Reference month start in YYYY-MM.",
|
|
@@ -439,8 +567,11 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
439
567
|
"method": "GET",
|
|
440
568
|
"client": "AlternativeDataMacroMarkets",
|
|
441
569
|
"description": (
|
|
442
|
-
"Get DPMFi PAF composition projections: issuances,
|
|
443
|
-
"
|
|
570
|
+
"Get DPMFi PAF composition projections: new issuances, "
|
|
571
|
+
"end-of-month outstanding stock and share of total DPMFi debt by "
|
|
572
|
+
"bond category for the forward months available in the selected "
|
|
573
|
+
"snapshot. Returned row fields are reference_date, bond_type, "
|
|
574
|
+
"emissoes, estoque_final and perc_divida."
|
|
444
575
|
),
|
|
445
576
|
"parameters": {
|
|
446
577
|
"start_date": "Reference month start in YYYY-MM.",
|
|
@@ -450,6 +581,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
450
581
|
"limit": "Maximum number of rows.",
|
|
451
582
|
"offset": "Pagination offset.",
|
|
452
583
|
},
|
|
584
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_dpmfi_composition"]],
|
|
453
585
|
},
|
|
454
586
|
"AlternativeDataCompanies.get_board": {
|
|
455
587
|
"category": "companies",
|
|
@@ -459,7 +591,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
459
591
|
"description": (
|
|
460
592
|
"Get members of a company's governance body. body can be board, "
|
|
461
593
|
"executive or committee; committee filters a specific committee when "
|
|
462
|
-
"body='committee'."
|
|
594
|
+
"body='committee'. For Brazilian filings, body='board' can include "
|
|
595
|
+
"Conselho Fiscal rows; filter governance_body/role for Conselho de "
|
|
596
|
+
"Administracao when answering board-of-directors questions."
|
|
463
597
|
),
|
|
464
598
|
"parameters": {
|
|
465
599
|
"company_id": PUBLIC_SOURCES_CONVENTIONS["company_id"],
|
|
@@ -471,6 +605,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
471
605
|
"offset": "Pagination offset.",
|
|
472
606
|
},
|
|
473
607
|
"relationships": ["company_resolution", "company_trading_bridge"],
|
|
608
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_company_board"]],
|
|
474
609
|
},
|
|
475
610
|
"AlternativeDataCompanies.get_governance_summary": {
|
|
476
611
|
"category": "companies",
|
|
@@ -656,14 +791,18 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
656
791
|
"description": (
|
|
657
792
|
"Get company financial-statement line items from CVM filings. "
|
|
658
793
|
"statement can be income_statement, balance_sheet or cash_flow; "
|
|
659
|
-
"use account_code to retrieve a specific account."
|
|
794
|
+
"use account_code to retrieve a specific account. Omit company_id "
|
|
795
|
+
"only for universe-level screens or rankings."
|
|
660
796
|
),
|
|
661
797
|
"parameters": {
|
|
662
|
-
"company_id":
|
|
798
|
+
"company_id": (
|
|
799
|
+
PUBLIC_SOURCES_CONVENTIONS["company_id"]
|
|
800
|
+
+ " Omit only for universe-level screens or rankings."
|
|
801
|
+
),
|
|
663
802
|
"statement": "Statement type or alias, for example income_statement, balance_sheet or cash_flow.",
|
|
664
803
|
"quarter": "Brazilian quarter code such as 1T24 or 4T24.",
|
|
665
804
|
"reference_date": "Reference date in YYYY-MM-DD.",
|
|
666
|
-
"statement_type": "Optional
|
|
805
|
+
"statement_type": "Optional presentation/filter such as consolidated or individual when supported.",
|
|
667
806
|
"account_code": "Optional account code filter.",
|
|
668
807
|
"limit": "Maximum number of line items.",
|
|
669
808
|
"offset": "Pagination offset.",
|
|
@@ -673,6 +812,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
673
812
|
"company_trading_bridge", "sector_market_peer_bridge",
|
|
674
813
|
"macro_market_bridge",
|
|
675
814
|
],
|
|
815
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_financial_statements"]],
|
|
676
816
|
},
|
|
677
817
|
"AlternativeDataCompanies.get_financial_notes": {
|
|
678
818
|
"category": "companies",
|
|
@@ -811,7 +951,8 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
811
951
|
"description": (
|
|
812
952
|
"Get aggregate exposures for a fund or ETF by dimension. "
|
|
813
953
|
"exposure_type can be all, asset_class, issuer, sector, indexer, "
|
|
814
|
-
"maturity or country."
|
|
954
|
+
"maturity or country. Use holdings for constituent-level exposure "
|
|
955
|
+
"when a dimension is sparse or source-dependent."
|
|
815
956
|
),
|
|
816
957
|
"parameters": {
|
|
817
958
|
"fund_id": PUBLIC_SOURCES_CONVENTIONS["fund_id"],
|
|
@@ -822,6 +963,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
822
963
|
"fund_company_bridge", "sector_peer_set",
|
|
823
964
|
"fund_market_exposure_bridge", "sector_market_peer_bridge",
|
|
824
965
|
],
|
|
966
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_fund_exposures"]],
|
|
825
967
|
},
|
|
826
968
|
"AlternativeDataFunds.get_history": {
|
|
827
969
|
"category": "funds",
|
|
@@ -851,7 +993,8 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
851
993
|
"client": "AlternativeDataFunds",
|
|
852
994
|
"description": (
|
|
853
995
|
"Get recursive look-through exposure for a fund or ETF. Use this to "
|
|
854
|
-
"expand nested fund holdings into underlying assets when available
|
|
996
|
+
"expand nested fund holdings into underlying assets when available; "
|
|
997
|
+
"for direct-equity ETFs, holdings and exposures can be more useful."
|
|
855
998
|
),
|
|
856
999
|
"parameters": {
|
|
857
1000
|
"fund_id": PUBLIC_SOURCES_CONVENTIONS["fund_id"],
|
|
@@ -859,6 +1002,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
859
1002
|
"limit": "Maximum number of look-through rows.",
|
|
860
1003
|
},
|
|
861
1004
|
"relationships": ["fund_company_bridge", "fund_market_exposure_bridge"],
|
|
1005
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["get_fund_lookthrough"]],
|
|
862
1006
|
},
|
|
863
1007
|
"AlternativeDataFunds.get_manager_aggregate_holdings": {
|
|
864
1008
|
"category": "funds",
|
|
@@ -885,12 +1029,17 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
885
1029
|
"method": "GET",
|
|
886
1030
|
"client": "AlternativeDataOwnership",
|
|
887
1031
|
"description": (
|
|
888
|
-
"Get top shareholders for a
|
|
889
|
-
"are
|
|
1032
|
+
"Get top shareholders for a company from the normalized "
|
|
1033
|
+
"ownership_snapshot layer when shareholder-level snapshots are "
|
|
1034
|
+
"available. Brazilian CVM/FRE rows are periodic filing snapshots."
|
|
890
1035
|
),
|
|
891
1036
|
"parameters": {
|
|
892
1037
|
"company_id": PUBLIC_SOURCES_CONVENTIONS["company_id"],
|
|
893
|
-
"reference_date":
|
|
1038
|
+
"reference_date": (
|
|
1039
|
+
"Reference date in YYYY-MM-DD; omitted means latest loaded "
|
|
1040
|
+
"snapshot per ownership_category. Provided values are exact "
|
|
1041
|
+
"loaded snapshot dates, not as-of lookups."
|
|
1042
|
+
),
|
|
894
1043
|
"ownership_category": "Ownership category filter when supported.",
|
|
895
1044
|
"limit": "Maximum number of shareholders.",
|
|
896
1045
|
},
|
|
@@ -898,7 +1047,10 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
898
1047
|
"company_resolution", "ownership_fallback",
|
|
899
1048
|
"ownership_liquidity_bridge",
|
|
900
1049
|
],
|
|
901
|
-
"caveats": [
|
|
1050
|
+
"caveats": [
|
|
1051
|
+
PUBLIC_SOURCES_DATA_GAPS["get_top_shareholders"],
|
|
1052
|
+
PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"],
|
|
1053
|
+
],
|
|
902
1054
|
},
|
|
903
1055
|
"AlternativeDataOwnership.get_ownership_current": {
|
|
904
1056
|
"category": "ownership",
|
|
@@ -914,6 +1066,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
914
1066
|
"company_resolution", "ownership_fallback",
|
|
915
1067
|
"ownership_liquidity_bridge",
|
|
916
1068
|
],
|
|
1069
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"]],
|
|
917
1070
|
},
|
|
918
1071
|
"AlternativeDataOwnership.get_ownership_history": {
|
|
919
1072
|
"category": "ownership",
|
|
@@ -921,21 +1074,26 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
921
1074
|
"method": "GET",
|
|
922
1075
|
"client": "AlternativeDataOwnership",
|
|
923
1076
|
"description": (
|
|
924
|
-
"Get historical ownership snapshots for a company
|
|
925
|
-
"
|
|
926
|
-
"
|
|
1077
|
+
"Get historical ownership snapshots for a company from the "
|
|
1078
|
+
"normalized ownership_snapshot layer. Brazilian CVM/FRE snapshots "
|
|
1079
|
+
"are periodic filing dates, not guaranteed month-end series. Use "
|
|
1080
|
+
"ownership_category to filter holder categories when supported."
|
|
927
1081
|
),
|
|
928
1082
|
"parameters": {
|
|
929
1083
|
"company_id": PUBLIC_SOURCES_CONVENTIONS["company_id"],
|
|
930
1084
|
"start_date": "Start date in YYYY-MM-DD.",
|
|
931
1085
|
"end_date": "End date in YYYY-MM-DD.",
|
|
932
1086
|
"ownership_category": "Ownership category filter when supported.",
|
|
933
|
-
"limit": "Maximum number of
|
|
1087
|
+
"limit": "Maximum number of snapshot reference dates.",
|
|
934
1088
|
},
|
|
935
1089
|
"relationships": [
|
|
936
1090
|
"company_resolution", "ownership_fallback",
|
|
937
1091
|
"ownership_liquidity_bridge",
|
|
938
1092
|
],
|
|
1093
|
+
"caveats": [
|
|
1094
|
+
PUBLIC_SOURCES_DATA_GAPS["get_ownership_history"],
|
|
1095
|
+
PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"],
|
|
1096
|
+
],
|
|
939
1097
|
},
|
|
940
1098
|
"AlternativeDataOwnership.get_ownership_change_events": {
|
|
941
1099
|
"category": "ownership",
|
|
@@ -958,6 +1116,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
958
1116
|
"company_resolution", "ownership_fallback", "document_summary",
|
|
959
1117
|
"ownership_liquidity_bridge", "document_market_event_bridge",
|
|
960
1118
|
],
|
|
1119
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"]],
|
|
961
1120
|
},
|
|
962
1121
|
"AlternativeDataOwnership.get_ownership_official_notices": {
|
|
963
1122
|
"category": "ownership",
|
|
@@ -965,9 +1124,10 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
965
1124
|
"method": "GET",
|
|
966
1125
|
"client": "AlternativeDataOwnership",
|
|
967
1126
|
"description": (
|
|
968
|
-
"Get official
|
|
969
|
-
"
|
|
970
|
-
"
|
|
1127
|
+
"Get official ownership notices and related IR evidence for a "
|
|
1128
|
+
"company. The response can contain official_notices, ir_page_sources "
|
|
1129
|
+
"and ir_structures; use official_notices download_url values for "
|
|
1130
|
+
"document summaries."
|
|
971
1131
|
),
|
|
972
1132
|
"parameters": {
|
|
973
1133
|
"company_id": PUBLIC_SOURCES_CONVENTIONS["company_id"],
|
|
@@ -980,6 +1140,10 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
980
1140
|
"company_resolution", "ownership_fallback", "document_summary",
|
|
981
1141
|
"ownership_liquidity_bridge", "document_market_event_bridge",
|
|
982
1142
|
],
|
|
1143
|
+
"caveats": [
|
|
1144
|
+
PUBLIC_SOURCES_DATA_GAPS["get_ownership_official_notices"],
|
|
1145
|
+
PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"],
|
|
1146
|
+
],
|
|
983
1147
|
},
|
|
984
1148
|
"AlternativeDataOwnership.get_notice_summary": {
|
|
985
1149
|
"category": "ownership",
|
|
@@ -1011,6 +1175,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
1011
1175
|
"company_resolution", "ownership_fallback",
|
|
1012
1176
|
"ownership_liquidity_bridge",
|
|
1013
1177
|
],
|
|
1178
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"]],
|
|
1014
1179
|
},
|
|
1015
1180
|
"AlternativeDataOwnership.get_ownership_free_float": {
|
|
1016
1181
|
"category": "ownership",
|
|
@@ -1029,6 +1194,7 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
1029
1194
|
"company_resolution", "ownership_fallback",
|
|
1030
1195
|
"ownership_liquidity_bridge",
|
|
1031
1196
|
],
|
|
1197
|
+
"caveats": [PUBLIC_SOURCES_DATA_GAPS["ownership_reporting_dates"]],
|
|
1032
1198
|
},
|
|
1033
1199
|
"AlternativeDataOwnership.get_shareholder_holdings": {
|
|
1034
1200
|
"category": "ownership",
|
|
@@ -1055,8 +1221,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
1055
1221
|
"method": "GET",
|
|
1056
1222
|
"client": "AlternativeDataOwnership",
|
|
1057
1223
|
"description": (
|
|
1058
|
-
"Get institutional holders of an asset
|
|
1059
|
-
"ticker when
|
|
1224
|
+
"Get institutional holders of an asset from the precomputed "
|
|
1225
|
+
"asset-holder layer. identifier defaults to a B3 ticker when "
|
|
1226
|
+
"identifier_type='b3_ticker'."
|
|
1060
1227
|
),
|
|
1061
1228
|
"parameters": {
|
|
1062
1229
|
"identifier": PUBLIC_SOURCES_CONVENTIONS["asset_identifier"],
|
|
@@ -1073,8 +1240,9 @@ PUBLIC_SOURCES_ENDPOINTS: dict[str, dict[str, Any]] = {
|
|
|
1073
1240
|
"method": "GET",
|
|
1074
1241
|
"client": "AlternativeDataOwnership",
|
|
1075
1242
|
"description": (
|
|
1076
|
-
"Get investment funds holding a given asset
|
|
1077
|
-
"
|
|
1243
|
+
"Get investment funds or ETFs holding a given asset using fund "
|
|
1244
|
+
"portfolio and ETF holding snapshots. identifier defaults to a B3 "
|
|
1245
|
+
"ticker when identifier_type='b3_ticker'."
|
|
1078
1246
|
),
|
|
1079
1247
|
"parameters": {
|
|
1080
1248
|
"identifier": PUBLIC_SOURCES_CONVENTIONS["asset_identifier"],
|
|
@@ -103,6 +103,13 @@ class AlternativeDataCompanies:
|
|
|
103
103
|
Use get_board_changes() for appointment/departure events and
|
|
104
104
|
get_governance_history() for historical snapshot series.
|
|
105
105
|
|
|
106
|
+
For Brazilian filings, ``body='board'`` can include Conselho Fiscal
|
|
107
|
+
rows alongside Conselho de Administracao rows. For a board-of-directors
|
|
108
|
+
answer, filter returned rows by governance_body or role. Committee
|
|
109
|
+
responses can include broad aggregate groups such as Outros Comites; do
|
|
110
|
+
not infer granular committee names unless they are present in returned
|
|
111
|
+
fields.
|
|
112
|
+
|
|
106
113
|
Parameters
|
|
107
114
|
----------------
|
|
108
115
|
company_id: str
|
|
@@ -475,7 +482,7 @@ class AlternativeDataCompanies:
|
|
|
475
482
|
|
|
476
483
|
def get_financial_statements(
|
|
477
484
|
self,
|
|
478
|
-
company_id: str,
|
|
485
|
+
company_id: Optional[str] = None,
|
|
479
486
|
statement: str = "income_statement",
|
|
480
487
|
quarter: Optional[str] = None,
|
|
481
488
|
reference_date: Optional[str] = None,
|
|
@@ -490,11 +497,15 @@ class AlternativeDataCompanies:
|
|
|
490
497
|
statement name or alias is uncertain. Quarter filters use Brazilian
|
|
491
498
|
quarter codes such as 1T24 and 4T24.
|
|
492
499
|
|
|
500
|
+
Omit ``company_id`` only for universe-level screens or rankings; in
|
|
501
|
+
that mode, paginate with ``limit``/``offset`` and deduplicate repeated
|
|
502
|
+
filings by company and source document version before ranking.
|
|
503
|
+
|
|
493
504
|
Parameters
|
|
494
505
|
----------------
|
|
495
506
|
company_id: str
|
|
496
507
|
Company identifier (CNPJ, CVM code, or B3 ticker).
|
|
497
|
-
Field is required. Example: 'PETR4'.
|
|
508
|
+
Field is not required for universe-level screens. Example: 'PETR4'.
|
|
498
509
|
statement: str
|
|
499
510
|
Statement type (e.g. 'income_statement', 'balance_sheet', 'cash_flow').
|
|
500
511
|
Field is not required. Default: 'income_statement'.
|
|
@@ -505,7 +516,9 @@ class AlternativeDataCompanies:
|
|
|
505
516
|
Reference date in YYYY-MM-DD format.
|
|
506
517
|
Field is not required.
|
|
507
518
|
statement_type: str
|
|
508
|
-
Statement
|
|
519
|
+
Statement presentation/filter when supported by the endpoint, such
|
|
520
|
+
as 'consolidated' or 'individual'. Some payloads also expose filing
|
|
521
|
+
source fields such as DFP/ITR separately; inspect returned columns.
|
|
509
522
|
Field is not required.
|
|
510
523
|
account_code: str
|
|
511
524
|
Specific account code filter.
|
|
@@ -160,6 +160,10 @@ class AlternativeDataFunds:
|
|
|
160
160
|
issuer, sector, indexer, maturity, country).
|
|
161
161
|
Use sector exposure with company sector endpoints when comparing fund
|
|
162
162
|
exposure with B3 company peer groups.
|
|
163
|
+
Exposure dimensions are source-dependent: for Brazilian ETFs, issuer
|
|
164
|
+
exposure can use ticker-like labels and country exposure can be empty
|
|
165
|
+
when not classified by the source. Use holdings for constituent-level
|
|
166
|
+
economic exposure when a dimension is sparse.
|
|
163
167
|
|
|
164
168
|
Parameters
|
|
165
169
|
----------------
|
|
@@ -228,6 +232,10 @@ class AlternativeDataFunds:
|
|
|
228
232
|
positions to underlying assets when available).
|
|
229
233
|
Use this after holdings when nested fund positions need to be expanded
|
|
230
234
|
into underlying assets.
|
|
235
|
+
For direct-equity ETFs, look-through can return opaque asset_key values
|
|
236
|
+
or zero lookthrough_weight when nested weights cannot be resolved. In
|
|
237
|
+
those cases, use get_holdings() and get_exposures() for exposure
|
|
238
|
+
analysis.
|
|
231
239
|
|
|
232
240
|
Parameters
|
|
233
241
|
----------------
|
|
@@ -76,17 +76,25 @@ class AlternativeDataMacroMarkets:
|
|
|
76
76
|
Use AlternativeDataMetadata.get_available_indicators() first when the
|
|
77
77
|
indicator code is uncertain.
|
|
78
78
|
|
|
79
|
+
Macro rows are heterogeneous across sources. Inspect returned indicator,
|
|
80
|
+
source, type/subseries, unit and date fields before aggregating values.
|
|
81
|
+
Aggregate aliases such as ``ipca`` can return valid aggregate rows even
|
|
82
|
+
when related granular series such as ``ipca_contributions`` are listed
|
|
83
|
+
separately in metadata.
|
|
84
|
+
|
|
79
85
|
Parameters
|
|
80
86
|
----------------
|
|
81
87
|
indicator: str
|
|
82
88
|
Macro indicator code.
|
|
83
89
|
Field is required. Example: 'selic'.
|
|
84
90
|
start_date: str
|
|
85
|
-
Start of the query period in YYYY-MM format
|
|
86
|
-
|
|
91
|
+
Start of the query period in YYYY-MM-DD format when supported by
|
|
92
|
+
the indicator.
|
|
93
|
+
Field is not required. Example: '2024-01-01'.
|
|
87
94
|
end_date: str
|
|
88
|
-
End of the query period in YYYY-MM format
|
|
89
|
-
|
|
95
|
+
End of the query period in YYYY-MM-DD format when supported by the
|
|
96
|
+
indicator.
|
|
97
|
+
Field is not required. Example: '2024-12-31'.
|
|
90
98
|
year: str
|
|
91
99
|
Four-digit year filter (ComexStat and RREO).
|
|
92
100
|
Field is not required.
|
|
@@ -148,6 +156,10 @@ class AlternativeDataMacroMarkets:
|
|
|
148
156
|
Use AlternativeDataMetadata.get_available_assets() first when asset or
|
|
149
157
|
instrument coverage is uncertain. This is a margin reference endpoint,
|
|
150
158
|
not a quote/trade feed and not the investor-categories endpoint.
|
|
159
|
+
``discount_margin`` is returned as a percentage value from the B3
|
|
160
|
+
reference file, not as a decimal fraction. ``base_value`` is the B3
|
|
161
|
+
file's reference/base value and should not be treated as a live quote
|
|
162
|
+
or a credit decision value.
|
|
151
163
|
|
|
152
164
|
Parameters
|
|
153
165
|
----------------
|
|
@@ -170,10 +182,10 @@ class AlternativeDataMacroMarkets:
|
|
|
170
182
|
End date of the query period in YYYY-MM-DD format.
|
|
171
183
|
Field is not required.
|
|
172
184
|
min_margin: float
|
|
173
|
-
Lower bound filter on the discount_margin (haircut) value.
|
|
185
|
+
Lower bound filter on the discount_margin (haircut) percentage value.
|
|
174
186
|
Field is not required.
|
|
175
187
|
max_margin: float
|
|
176
|
-
Upper bound filter on the discount_margin (haircut) value.
|
|
188
|
+
Upper bound filter on the discount_margin (haircut) percentage value.
|
|
177
189
|
Field is not required.
|
|
178
190
|
limit: int
|
|
179
191
|
Maximum number of results to return.
|
|
@@ -207,6 +219,13 @@ class AlternativeDataMacroMarkets:
|
|
|
207
219
|
"""
|
|
208
220
|
Monthly time-series of DPMFi (domestic federal public debt) outstanding
|
|
209
221
|
stock broken down by bond type (NTN-B, LFT, NTN-F, LTN, Demais).
|
|
222
|
+
This endpoint returns official/projection/estimated stock series by
|
|
223
|
+
security acronym or indexer. Use get_dpmfi_composition() for PAF
|
|
224
|
+
composition projections by broad bond category.
|
|
225
|
+
|
|
226
|
+
When ``snapshot_date`` is omitted, the latest available snapshot is
|
|
227
|
+
used. To make a reproducible follow-up call, run a narrow latest query
|
|
228
|
+
and inspect the returned snapshot/partition date fields.
|
|
210
229
|
|
|
211
230
|
Parameters
|
|
212
231
|
----------------
|
|
@@ -250,9 +269,17 @@ class AlternativeDataMacroMarkets:
|
|
|
250
269
|
offset: int = 0,
|
|
251
270
|
) -> dict:
|
|
252
271
|
"""
|
|
253
|
-
Monthly PAF composition by bond
|
|
254
|
-
outstanding stock, and share of total
|
|
255
|
-
|
|
272
|
+
Monthly PAF composition by bond category: new issuances (``emissoes``),
|
|
273
|
+
end-of-month outstanding stock (``estoque_final``), and share of total
|
|
274
|
+
DPMFi debt (``perc_divida``) for Prefixado, IPCA, Selic and Total.
|
|
275
|
+
|
|
276
|
+
This endpoint covers the forward PAF projection months available in the
|
|
277
|
+
selected snapshot, usually the two months after the latest official
|
|
278
|
+
DPMFi stock observation. Filters outside the available reference-month
|
|
279
|
+
window return an empty but valid result. ``bond_type`` uses PAF
|
|
280
|
+
categories (Prefixado, IPCA, Selic, Total), not security acronyms such
|
|
281
|
+
as LTN, LFT, NTN-B or NTN-F. Do not join ``bond_type`` values one-to-one
|
|
282
|
+
with the security-acronym rows returned by get_dpmfi().
|
|
256
283
|
|
|
257
284
|
Parameters
|
|
258
285
|
----------------
|
|
@@ -102,7 +102,9 @@ class AlternativeDataMetadata:
|
|
|
102
102
|
List the available macro indicator codes for use with
|
|
103
103
|
AlternativeDataMacroMarkets.get_macro_indicators().
|
|
104
104
|
Use this metadata endpoint when the requested macro series code is
|
|
105
|
-
uncertain before querying observations.
|
|
105
|
+
uncertain before querying observations. Treat this as discovery help,
|
|
106
|
+
then inspect returned macro rows because aggregate aliases such as
|
|
107
|
+
ipca and related granular series such as ipca_contributions can coexist.
|
|
106
108
|
"""
|
|
107
109
|
return self._get("available-indicators", {})
|
|
108
110
|
|
|
@@ -242,7 +244,9 @@ class AlternativeDataMetadata:
|
|
|
242
244
|
"""
|
|
243
245
|
Full sector taxonomy tree (B3 or CNAE classification system).
|
|
244
246
|
Use this with get_company_sector(), get_sector_companies() and
|
|
245
|
-
get_sectors_summary() to discover sector hierarchy and peer sets.
|
|
247
|
+
get_sectors_summary() to discover sector hierarchy and peer sets. B3
|
|
248
|
+
labels are upstream taxonomy labels; pass exact returned sector,
|
|
249
|
+
subsector and segment strings to get_sector_companies().
|
|
246
250
|
|
|
247
251
|
Parameters
|
|
248
252
|
----------------
|
|
@@ -271,7 +275,8 @@ class AlternativeDataMetadata:
|
|
|
271
275
|
"""
|
|
272
276
|
Sector classification for a company.
|
|
273
277
|
Use get_sector_companies() with the returned sector/subsector/segment
|
|
274
|
-
values to retrieve peers in the same B3 classification.
|
|
278
|
+
values to retrieve peers in the same B3 classification. Reuse the exact
|
|
279
|
+
returned labels, including punctuation and spelling.
|
|
275
280
|
|
|
276
281
|
Parameters
|
|
277
282
|
----------------
|
|
@@ -292,7 +297,8 @@ class AlternativeDataMetadata:
|
|
|
292
297
|
"""
|
|
293
298
|
Companies belonging to a given sector, subsector, or segment.
|
|
294
299
|
Use get_taxonomy(), get_sectors_summary(), or get_company_sector() first
|
|
295
|
-
to discover valid B3 sector/subsector/segment values.
|
|
300
|
+
to discover valid B3 sector/subsector/segment values. Filters should
|
|
301
|
+
use exact upstream labels; normalized or guessed strings can miss rows.
|
|
296
302
|
|
|
297
303
|
Parameters
|
|
298
304
|
----------------
|
|
@@ -60,10 +60,23 @@ class AlternativeDataOwnership:
|
|
|
60
60
|
limit: int = 20,
|
|
61
61
|
) -> dict:
|
|
62
62
|
"""
|
|
63
|
-
Top shareholders for a company
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
Top shareholders for a company from the normalized ownership_snapshot
|
|
64
|
+
layer. For Brazilian listed companies, CVM/FRE rows are periodic filing
|
|
65
|
+
snapshots, often annual or quarterly reference dates. When
|
|
66
|
+
``reference_date`` is omitted, the endpoint uses the latest loaded
|
|
67
|
+
snapshot per ownership_category; when ``reference_date`` is provided,
|
|
68
|
+
it must match a loaded snapshot date.
|
|
69
|
+
|
|
70
|
+
This endpoint does not synthesize current ownership from control/free
|
|
71
|
+
float tables; ``total=0`` means no matching rows were found in the
|
|
72
|
+
normalized snapshot layer for the selected company/date/category
|
|
73
|
+
filter. For Brazilian ownership questions, call get_ownership_current(),
|
|
74
|
+
get_ownership_control_group(), get_ownership_free_float() and
|
|
75
|
+
get_ownership_official_notices() when this endpoint returns no rows.
|
|
76
|
+
Some responses can include multiple rows for the same holder across
|
|
77
|
+
share classes, ownership categories, filings or source protocols;
|
|
78
|
+
inspect category, class, protocol/source and reference date before
|
|
79
|
+
aggregating percentages.
|
|
67
80
|
|
|
68
81
|
Parameters
|
|
69
82
|
----------------
|
|
@@ -71,7 +84,9 @@ class AlternativeDataOwnership:
|
|
|
71
84
|
Company identifier.
|
|
72
85
|
Field is required. Example: 'VALE3'.
|
|
73
86
|
reference_date: str
|
|
74
|
-
Reference date in YYYY-MM-DD format. Defaults to the
|
|
87
|
+
Reference date in YYYY-MM-DD format. Defaults to the latest loaded
|
|
88
|
+
snapshot per ownership_category. When provided, it is an exact
|
|
89
|
+
loaded snapshot date, not an as-of lookup.
|
|
75
90
|
Field is not required.
|
|
76
91
|
ownership_category: str
|
|
77
92
|
Ownership category filter.
|
|
@@ -92,6 +107,8 @@ class AlternativeDataOwnership:
|
|
|
92
107
|
Current ownership structure snapshot for a company.
|
|
93
108
|
Use this as the primary current ownership summary when top-shareholder
|
|
94
109
|
snapshots are empty or when a compact ownership object is sufficient.
|
|
110
|
+
Reference dates usually come from CVM/FRE reporting periods or parsed
|
|
111
|
+
IR structures and are not necessarily strict as-of timestamps.
|
|
95
112
|
|
|
96
113
|
Parameters
|
|
97
114
|
----------------
|
|
@@ -110,13 +127,23 @@ class AlternativeDataOwnership:
|
|
|
110
127
|
limit: int = 12,
|
|
111
128
|
) -> dict:
|
|
112
129
|
"""
|
|
113
|
-
|
|
130
|
+
Historical ownership snapshots for a company from the same normalized
|
|
131
|
+
ownership_snapshot layer used by get_top_shareholders(). For Brazilian
|
|
132
|
+
listed companies, CVM/FRE snapshots are periodic filing dates rather
|
|
133
|
+
than guaranteed calendar month-ends. This endpoint does not synthesize
|
|
134
|
+
history from current ownership or notice tables. For Brazilian ownership
|
|
135
|
+
timelines, use get_ownership_change_events() and
|
|
136
|
+
get_ownership_official_notices() as the event/document sources when
|
|
137
|
+
snapshots are empty, and get_ownership_current(),
|
|
138
|
+
get_ownership_control_group() or get_ownership_free_float() for current
|
|
139
|
+
context. Reference dates usually come from reporting periods and can
|
|
140
|
+
denote a filing year/base period rather than the load date.
|
|
114
141
|
|
|
115
142
|
Parameters
|
|
116
143
|
----------------
|
|
117
144
|
company_id: str
|
|
118
145
|
Company identifier.
|
|
119
|
-
Field is required. Example: '
|
|
146
|
+
Field is required. Example: 'PETR4'.
|
|
120
147
|
start_date: str
|
|
121
148
|
Start date in YYYY-MM-DD format.
|
|
122
149
|
Field is not required.
|
|
@@ -127,7 +154,7 @@ class AlternativeDataOwnership:
|
|
|
127
154
|
Ownership category filter.
|
|
128
155
|
Field is not required. Default: 'all'.
|
|
129
156
|
limit: int
|
|
130
|
-
Maximum number of
|
|
157
|
+
Maximum number of snapshot reference dates to return.
|
|
131
158
|
Field is not required. Default: 12.
|
|
132
159
|
"""
|
|
133
160
|
return self._get("companies/ownership-history", {
|
|
@@ -186,9 +213,18 @@ class AlternativeDataOwnership:
|
|
|
186
213
|
limit: int = 100,
|
|
187
214
|
) -> dict:
|
|
188
215
|
"""
|
|
189
|
-
Official ownership notices
|
|
190
|
-
|
|
191
|
-
|
|
216
|
+
Official ownership notices and related IR evidence for a company.
|
|
217
|
+
|
|
218
|
+
The response can contain three list blocks:
|
|
219
|
+
``official_notices`` (CVM/IPE ownership-related disclosures and SEC
|
|
220
|
+
13D/13G/13F summaries), ``ir_page_sources`` (candidate investor-relations
|
|
221
|
+
pages), and ``ir_structures`` (parsed IR ownership/free-float/control
|
|
222
|
+
structures, filterable by parser_status). start_date/end_date filter
|
|
223
|
+
the ``official_notices`` block; IR page/source metadata and parsed IR
|
|
224
|
+
structures are discovery/parser evidence and can still be returned when
|
|
225
|
+
the requested official-notice date range is empty. Returned CVM RAD
|
|
226
|
+
download URLs can be passed to get_notice_summary() for an AI-generated
|
|
227
|
+
document summary.
|
|
192
228
|
|
|
193
229
|
Parameters
|
|
194
230
|
----------------
|
|
@@ -254,6 +290,8 @@ class AlternativeDataOwnership:
|
|
|
254
290
|
Control group composition for a Brazilian company (CVM FRE).
|
|
255
291
|
Use this for who controls the company; use get_shareholder_holdings()
|
|
256
292
|
for a reverse lookup of one holder across companies.
|
|
293
|
+
Reference dates usually come from CVM/FRE reporting periods and can
|
|
294
|
+
denote a filing year/base period rather than the load date.
|
|
257
295
|
|
|
258
296
|
Parameters
|
|
259
297
|
----------------
|
|
@@ -266,6 +304,9 @@ class AlternativeDataOwnership:
|
|
|
266
304
|
def get_ownership_free_float(self, company_id: str, limit: int = 20) -> dict:
|
|
267
305
|
"""
|
|
268
306
|
Free float breakdown for a company.
|
|
307
|
+
Reference dates usually come from CVM/FRE reporting periods or parsed
|
|
308
|
+
IR structures and can denote a filing year/base period rather than the
|
|
309
|
+
load date.
|
|
269
310
|
|
|
270
311
|
Parameters
|
|
271
312
|
----------------
|
|
@@ -331,7 +372,13 @@ class AlternativeDataOwnership:
|
|
|
331
372
|
limit: int = 50,
|
|
332
373
|
) -> dict:
|
|
333
374
|
"""
|
|
334
|
-
Institutional holders of a specific asset
|
|
375
|
+
Institutional holders of a specific asset from the precomputed
|
|
376
|
+
asset-holder layer. Coverage can be sparse for B3 tickers. This
|
|
377
|
+
endpoint does not run the live fund-portfolio/ETF holding lookup used
|
|
378
|
+
by get_fund_holders(); when this endpoint returns no holders,
|
|
379
|
+
get_fund_holders() is often the richer inverse relationship for
|
|
380
|
+
Brazilian assets because it uses fund portfolio and ETF holding
|
|
381
|
+
snapshots.
|
|
335
382
|
|
|
336
383
|
Parameters
|
|
337
384
|
----------------
|
|
@@ -363,9 +410,10 @@ class AlternativeDataOwnership:
|
|
|
363
410
|
limit: int = 50,
|
|
364
411
|
) -> dict:
|
|
365
412
|
"""
|
|
366
|
-
Funds that hold a specific asset.
|
|
413
|
+
Funds or ETFs that hold a specific asset.
|
|
367
414
|
This is the inverse relationship of fund holdings for a B3 asset and is
|
|
368
|
-
often richer than institutional-holder coverage
|
|
415
|
+
often richer than institutional-holder coverage because it uses fund
|
|
416
|
+
portfolio and ETF holding snapshots.
|
|
369
417
|
|
|
370
418
|
Parameters
|
|
371
419
|
----------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: btgsolutions_dataservices_python_client
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.2
|
|
4
4
|
Summary: Python package containing several classes and data for extracting and manipulating market and trading data.
|
|
5
5
|
Home-page: https://github.com/BTG-Pactual-Solutions/btgsolutions-dataservices-python-client
|
|
6
6
|
Author: BTG Solutions Data Services powered by BTG Pactual Solutions
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|