btgsolutions-dataservices-python-client 4.0.0__tar.gz → 4.2.0__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.
Files changed (49) hide show
  1. {btgsolutions_dataservices_python_client-4.0.0/btgsolutions_dataservices_python_client.egg-info → btgsolutions_dataservices_python_client-4.2.0}/PKG-INFO +75 -9
  2. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/README.md +94 -28
  3. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/__init__.py +1 -1
  4. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/__init__.py +26 -0
  5. btgsolutions_dataservices_python_client-4.2.0/btgsolutions_dataservices/rest/alternative_data_catalog.py +1242 -0
  6. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_companies.py +109 -11
  7. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_funds.py +87 -19
  8. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_macro_markets.py +12 -3
  9. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_metadata.py +115 -7
  10. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_ownership.py +53 -3
  11. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/alternative_data_people.py +7 -3
  12. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/bulk_data.py +8 -1
  13. btgsolutions_dataservices_python_client-4.2.0/btgsolutions_dataservices/rest/dataservices_catalog.py +933 -0
  14. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/public_sources.py +22 -15
  15. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0/btgsolutions_dataservices_python_client.egg-info}/PKG-INFO +75 -9
  16. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices_python_client.egg-info/SOURCES.txt +2 -0
  17. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/LICENSE +0 -0
  18. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/MANIFEST.in +0 -0
  19. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/config.py +0 -0
  20. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/exceptions.py +0 -0
  21. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/authenticator.py +0 -0
  22. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/book_scope.py +0 -0
  23. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/broker_analytics.py +0 -0
  24. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/broker_reference.py +0 -0
  25. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/company_data.py +0 -0
  26. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/corporate_events.py +0 -0
  27. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/hfn.py +0 -0
  28. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/historical_candles.py +0 -0
  29. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/historical_candles_crypto.py +0 -0
  30. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/intraday_candles.py +0 -0
  31. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/intraday_tick_data.py +0 -0
  32. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/quotes.py +0 -0
  33. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/reference_data.py +0 -0
  34. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/stock_loan.py +0 -0
  35. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/ticker_last_event.py +0 -0
  36. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/rest/ticker_last_event_polling.py +0 -0
  37. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/__init__.py +0 -0
  38. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/broker_analytics.py +0 -0
  39. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/hfn_websocket_client.py +0 -0
  40. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/market_data_feed.py +0 -0
  41. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/market_data_websocket_client.py +0 -0
  42. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices/websocket/websocket_default_functions.py +0 -0
  43. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices_python_client.egg-info/dependency_links.txt +0 -0
  44. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices_python_client.egg-info/requires.txt +0 -0
  45. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/btgsolutions_dataservices_python_client.egg-info/top_level.txt +0 -0
  46. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/pyproject.toml +0 -0
  47. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/requirements.txt +0 -0
  48. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/setup.cfg +0 -0
  49. {btgsolutions_dataservices_python_client-4.0.0 → btgsolutions_dataservices_python_client-4.2.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: btgsolutions_dataservices_python_client
3
- Version: 4.0.0
3
+ Version: 4.2.0
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
@@ -521,12 +521,70 @@ company_data = btg.CompanyData(api_key='YOUR_API_KEY')
521
521
  company_data.all_financial_tables(ticker='PETR4')
522
522
  ```
523
523
 
524
+ #### REST Technical Catalogs
525
+
526
+ Technical endpoint descriptions for REST APIs are exported by the package so
527
+ MCPs and other connectors can reuse the same source of truth instead of
528
+ duplicating endpoint semantics locally.
529
+
530
+ ```python
531
+ from btgsolutions_dataservices.rest import (
532
+ DATASERVICES_ENDPOINTS,
533
+ DATASERVICES_ENDPOINT_RELATIONSHIPS,
534
+ get_dataservices_tool_description,
535
+ )
536
+
537
+ print(get_dataservices_tool_description("get_quotes"))
538
+ print(get_dataservices_tool_description("get_book_scope"))
539
+ ```
540
+
541
+ The Data Services catalog covers quotes, candles, intraday trades, last events,
542
+ reference data, corporate events, company fundamental data, HFN news,
543
+ stock-loan data, bulk market data, broker reference, broker analytics and
544
+ book-scope endpoints. It documents parameters, endpoint relationships such as
545
+ available-ticker discovery before market-data calls, broker-reference discovery
546
+ before broker analytics, HFN filter discovery before news queries, corporate
547
+ events before adjusted price analysis, and book-scope constraints for
548
+ microstructure analysis.
549
+
550
+ The REST catalogs also document cross-domain relationships between Public
551
+ Sources and market-data services: company directory resolution feeds ticker
552
+ reference, quotes, candles, stock-loan, broker analytics and book-scope tools;
553
+ sector classification feeds peer-market comparisons; fund holdings feed
554
+ underlying ticker market analysis; ownership/free-float feeds liquidity context;
555
+ and disclosures, official notices, HFN news and corporate events feed event
556
+ window analysis.
557
+
524
558
  #### Alternative Data - Metadata
525
559
 
560
+ Technical endpoint descriptions for the public-sources alternative-data APIs are
561
+ exported by the package so MCPs and other connectors can reuse the same source
562
+ of truth:
563
+
564
+ ```python
565
+ from btgsolutions_dataservices.rest import (
566
+ PUBLIC_SOURCES_ENDPOINTS,
567
+ PUBLIC_SOURCES_ENDPOINT_RELATIONSHIPS,
568
+ get_public_sources_tool_description,
569
+ )
570
+
571
+ print(get_public_sources_tool_description("get_company_board"))
572
+ ```
573
+
574
+ The catalog documents endpoint parameters, known data gaps, excluded endpoints,
575
+ and relationships such as: company metadata resolving identifiers for governance
576
+ and ownership calls; macro indicator metadata feeding macro observations; asset
577
+ metadata feeding maximum-theoretical-margin calls; financial statement type
578
+ metadata feeding statement queries; assemblies and ownership notices feeding
579
+ notice summaries; and fund holdings/asset fund holders linking funds with
580
+ company tickers.
581
+
526
582
  ```python
527
583
  import btgsolutions_dataservices as btg
528
584
  meta = btg.AlternativeDataMetadata(api_key='YOUR_API_KEY')
529
585
  meta.get_company_directory(query='PETROBRAS', jurisdiction='BR')
586
+ meta.list_companies(query='PETROBRAS', jurisdiction='BR')
587
+ meta.list_etfs(query='BOVA')
530
588
  meta.get_company_sector(identifier='PETR4')
531
589
  meta.get_taxonomy(system='b3')
532
590
  meta.get_cnae(code='6422100')
@@ -543,19 +601,21 @@ meta.get_available_indicators()
543
601
  ```python
544
602
  import btgsolutions_dataservices as btg
545
603
  companies = btg.AlternativeDataCompanies(api_key='YOUR_API_KEY')
604
+ companies.list_companies(query='PETROBRAS', jurisdiction='BR')
546
605
  companies.get_board(company_id='VALE3', body='board')
547
606
  companies.get_governance_summary(company_id='ITUB4')
548
607
  companies.get_governance_history(company_id='PETR4', start_date='2023-01-01', end_date='2024-12-31')
549
608
  companies.get_governance_documents(company_id='PETR4', start_date='2024-01-01', end_date='2024-12-31')
550
609
  companies.get_governance_compensation(company_id='VALE3', fiscal_year='2024')
551
610
  companies.get_governance_related_party(company_id='ITUB4')
552
- companies.get_governance_beneficial_ownership(company_id='VALE3')
611
+ companies.get_governance_beneficial_ownership(company_id='AAPL') # UK PSC / US SEC proxy data; not BR listed-company ownership
553
612
  companies.get_corporate_registry(company_id='PETR4', direction='partners')
554
613
  companies.get_corporate_registry(company_id='PETR4', direction='investees')
555
614
  companies.get_insider_trades(company_id='AAPL', start_date='2024-01-01', end_date='2024-12-31')
556
615
  companies.get_board_changes(company_id='VALE3', event='appointed')
557
- companies.get_financial_statements(company_id='PETR4', statement='income_statement', quarter='Q42024')
558
- companies.get_financial_notes(company_id='VALE3', quarter='Q42024')
616
+ companies.get_assemblies(company_id='PINE4')
617
+ companies.get_financial_statements(company_id='PETR4', statement='income_statement', quarter='4T24')
618
+ companies.get_financial_notes(company_id='VALE3', quarter='4T24')
559
619
  companies.get_disclosures(company_id='PETR4', document_type='repurchase')
560
620
  companies.get_disclosures(company_id='PETR4', document_type='insider')
561
621
  ```
@@ -574,11 +634,13 @@ people.get_appointments(person_id='slug:Jean Paul Lemann', group_by='company')
574
634
  ```python
575
635
  import btgsolutions_dataservices as btg
576
636
  funds = btg.AlternativeDataFunds(api_key='YOUR_API_KEY')
577
- funds.get_holdings(fund_id='73.232.530/0001-46', reference_date='2024-12-31')
578
- funds.get_exposures(fund_id='73.232.530/0001-46', exposure_type='asset_class')
579
- funds.get_history(fund_id='73.232.530/0001-46', start_date='2024-01-01', end_date='2024-12-31')
580
- funds.get_lookthrough(fund_id='73.232.530/0001-46')
581
- funds.get_manager_aggregate_holdings(manager_id='ITAÚ ASSET MANAGEMENT')
637
+ funds.list_etfs(query='BOVA')
638
+ funds.get_holdings(fund_id='BOVA11', reference_date='2024-12-31')
639
+ funds.get_exposures(fund_id='BOVA11', exposure_type='asset_class')
640
+ funds.get_history(fund_id='BOVA11', start_date='2024-01-01', end_date='2024-12-31')
641
+ funds.get_lookthrough(fund_id='BOVA11')
642
+ # Manager aggregation requires an exact covered manager CNPJ/name, not ETF issuer slugs, ETF tickers or fund CNPJs.
643
+ # funds.get_manager_aggregate_holdings(manager_id='...')
582
644
  ```
583
645
 
584
646
  #### Alternative Data - Ownership
@@ -591,6 +653,7 @@ ownership.get_ownership_current(company_id='ITUB4')
591
653
  ownership.get_ownership_history(company_id='PETR4', start_date='2023-01-01', end_date='2024-12-31')
592
654
  ownership.get_ownership_change_events(company_id='VALE3', start_date='2024-01-01', end_date='2024-12-31')
593
655
  ownership.get_ownership_official_notices(company_id='PETR4')
656
+ ownership.get_notice_summary(url='https://www.rad.cvm.gov.br/ENETWEB/frmGerenciaPastaDeArquivos.aspx?numProtocolo=1234567')
594
657
  ownership.get_ownership_control_group(company_id='VALE3')
595
658
  ownership.get_ownership_free_float(company_id='PETR4')
596
659
  ownership.get_shareholder_holdings(shareholder_id='00.000.000/0001-91')
@@ -610,9 +673,12 @@ macro.get_macro_indicators(indicator='comexstat', year='2024', state='SP')
610
673
  macro.get_macro_indicators(indicator='rreo', year='2024', period='6')
611
674
  macro.get_maximum_theoretical_margin(asset='PETR4', report_date='2024-12-31')
612
675
  macro.get_dpmfi(start_date='2024-01', end_date='2024-12', status='dados_oficiais')
676
+ macro.get_dpmfi(snapshot_date='2026-06-24', limit=10) # reproducible scoped snapshot
613
677
  macro.get_dpmfi_composition(bond_type='IPCA')
614
678
  ```
615
679
 
680
+ `AlternativeDataMacroMarkets` exposes the public-sources market-data endpoint for B3 maximum theoretical margin. The direct market-data `investor-categories` endpoint is intentionally not exposed in this package.
681
+
616
682
  ### Reference Data
617
683
 
618
684
  #### Corporate Events
@@ -494,16 +494,74 @@ company_data.interims(ticker='PETR4')
494
494
 
495
495
  ```python
496
496
  import btgsolutions_dataservices as btg
497
- company_data = btg.CompanyData(api_key='YOUR_API_KEY')
498
- company_data.all_financial_tables(ticker='PETR4')
499
- ```
500
-
501
- #### Alternative Data - Metadata
502
-
503
- ```python
504
- import btgsolutions_dataservices as btg
505
- meta = btg.AlternativeDataMetadata(api_key='YOUR_API_KEY')
497
+ company_data = btg.CompanyData(api_key='YOUR_API_KEY')
498
+ company_data.all_financial_tables(ticker='PETR4')
499
+ ```
500
+
501
+ #### REST Technical Catalogs
502
+
503
+ Technical endpoint descriptions for REST APIs are exported by the package so
504
+ MCPs and other connectors can reuse the same source of truth instead of
505
+ duplicating endpoint semantics locally.
506
+
507
+ ```python
508
+ from btgsolutions_dataservices.rest import (
509
+ DATASERVICES_ENDPOINTS,
510
+ DATASERVICES_ENDPOINT_RELATIONSHIPS,
511
+ get_dataservices_tool_description,
512
+ )
513
+
514
+ print(get_dataservices_tool_description("get_quotes"))
515
+ print(get_dataservices_tool_description("get_book_scope"))
516
+ ```
517
+
518
+ The Data Services catalog covers quotes, candles, intraday trades, last events,
519
+ reference data, corporate events, company fundamental data, HFN news,
520
+ stock-loan data, bulk market data, broker reference, broker analytics and
521
+ book-scope endpoints. It documents parameters, endpoint relationships such as
522
+ available-ticker discovery before market-data calls, broker-reference discovery
523
+ before broker analytics, HFN filter discovery before news queries, corporate
524
+ events before adjusted price analysis, and book-scope constraints for
525
+ microstructure analysis.
526
+
527
+ The REST catalogs also document cross-domain relationships between Public
528
+ Sources and market-data services: company directory resolution feeds ticker
529
+ reference, quotes, candles, stock-loan, broker analytics and book-scope tools;
530
+ sector classification feeds peer-market comparisons; fund holdings feed
531
+ underlying ticker market analysis; ownership/free-float feeds liquidity context;
532
+ and disclosures, official notices, HFN news and corporate events feed event
533
+ window analysis.
534
+
535
+ #### Alternative Data - Metadata
536
+
537
+ Technical endpoint descriptions for the public-sources alternative-data APIs are
538
+ exported by the package so MCPs and other connectors can reuse the same source
539
+ of truth:
540
+
541
+ ```python
542
+ from btgsolutions_dataservices.rest import (
543
+ PUBLIC_SOURCES_ENDPOINTS,
544
+ PUBLIC_SOURCES_ENDPOINT_RELATIONSHIPS,
545
+ get_public_sources_tool_description,
546
+ )
547
+
548
+ print(get_public_sources_tool_description("get_company_board"))
549
+ ```
550
+
551
+ The catalog documents endpoint parameters, known data gaps, excluded endpoints,
552
+ and relationships such as: company metadata resolving identifiers for governance
553
+ and ownership calls; macro indicator metadata feeding macro observations; asset
554
+ metadata feeding maximum-theoretical-margin calls; financial statement type
555
+ metadata feeding statement queries; assemblies and ownership notices feeding
556
+ notice summaries; and fund holdings/asset fund holders linking funds with
557
+ company tickers.
558
+
559
+ ```python
560
+ import btgsolutions_dataservices as btg
561
+ meta = btg.AlternativeDataMetadata(api_key='YOUR_API_KEY')
506
562
  meta.get_company_directory(query='PETROBRAS', jurisdiction='BR')
563
+ meta.list_companies(query='PETROBRAS', jurisdiction='BR')
564
+ meta.list_etfs(query='BOVA')
507
565
  meta.get_company_sector(identifier='PETR4')
508
566
  meta.get_taxonomy(system='b3')
509
567
  meta.get_cnae(code='6422100')
@@ -520,19 +578,21 @@ meta.get_available_indicators()
520
578
  ```python
521
579
  import btgsolutions_dataservices as btg
522
580
  companies = btg.AlternativeDataCompanies(api_key='YOUR_API_KEY')
581
+ companies.list_companies(query='PETROBRAS', jurisdiction='BR')
523
582
  companies.get_board(company_id='VALE3', body='board')
524
583
  companies.get_governance_summary(company_id='ITUB4')
525
- companies.get_governance_history(company_id='PETR4', start_date='2023-01-01', end_date='2024-12-31')
526
- companies.get_governance_documents(company_id='PETR4', start_date='2024-01-01', end_date='2024-12-31')
527
- companies.get_governance_compensation(company_id='VALE3', fiscal_year='2024')
528
- companies.get_governance_related_party(company_id='ITUB4')
529
- companies.get_governance_beneficial_ownership(company_id='VALE3')
530
- companies.get_corporate_registry(company_id='PETR4', direction='partners')
531
- companies.get_corporate_registry(company_id='PETR4', direction='investees')
532
- companies.get_insider_trades(company_id='AAPL', start_date='2024-01-01', end_date='2024-12-31')
584
+ companies.get_governance_history(company_id='PETR4', start_date='2023-01-01', end_date='2024-12-31')
585
+ companies.get_governance_documents(company_id='PETR4', start_date='2024-01-01', end_date='2024-12-31')
586
+ companies.get_governance_compensation(company_id='VALE3', fiscal_year='2024')
587
+ companies.get_governance_related_party(company_id='ITUB4')
588
+ companies.get_governance_beneficial_ownership(company_id='AAPL') # UK PSC / US SEC proxy data; not BR listed-company ownership
589
+ companies.get_corporate_registry(company_id='PETR4', direction='partners')
590
+ companies.get_corporate_registry(company_id='PETR4', direction='investees')
591
+ companies.get_insider_trades(company_id='AAPL', start_date='2024-01-01', end_date='2024-12-31')
533
592
  companies.get_board_changes(company_id='VALE3', event='appointed')
534
- companies.get_financial_statements(company_id='PETR4', statement='income_statement', quarter='Q42024')
535
- companies.get_financial_notes(company_id='VALE3', quarter='Q42024')
593
+ companies.get_assemblies(company_id='PINE4')
594
+ companies.get_financial_statements(company_id='PETR4', statement='income_statement', quarter='4T24')
595
+ companies.get_financial_notes(company_id='VALE3', quarter='4T24')
536
596
  companies.get_disclosures(company_id='PETR4', document_type='repurchase')
537
597
  companies.get_disclosures(company_id='PETR4', document_type='insider')
538
598
  ```
@@ -550,12 +610,14 @@ people.get_appointments(person_id='slug:Jean Paul Lemann', group_by='company')
550
610
 
551
611
  ```python
552
612
  import btgsolutions_dataservices as btg
553
- funds = btg.AlternativeDataFunds(api_key='YOUR_API_KEY')
554
- funds.get_holdings(fund_id='73.232.530/0001-46', reference_date='2024-12-31')
555
- funds.get_exposures(fund_id='73.232.530/0001-46', exposure_type='asset_class')
556
- funds.get_history(fund_id='73.232.530/0001-46', start_date='2024-01-01', end_date='2024-12-31')
557
- funds.get_lookthrough(fund_id='73.232.530/0001-46')
558
- funds.get_manager_aggregate_holdings(manager_id='ITAÚ ASSET MANAGEMENT')
613
+ funds = btg.AlternativeDataFunds(api_key='YOUR_API_KEY')
614
+ funds.list_etfs(query='BOVA')
615
+ funds.get_holdings(fund_id='BOVA11', reference_date='2024-12-31')
616
+ funds.get_exposures(fund_id='BOVA11', exposure_type='asset_class')
617
+ funds.get_history(fund_id='BOVA11', start_date='2024-01-01', end_date='2024-12-31')
618
+ funds.get_lookthrough(fund_id='BOVA11')
619
+ # Manager aggregation requires an exact covered manager CNPJ/name, not ETF issuer slugs, ETF tickers or fund CNPJs.
620
+ # funds.get_manager_aggregate_holdings(manager_id='...')
559
621
  ```
560
622
 
561
623
  #### Alternative Data - Ownership
@@ -568,6 +630,7 @@ ownership.get_ownership_current(company_id='ITUB4')
568
630
  ownership.get_ownership_history(company_id='PETR4', start_date='2023-01-01', end_date='2024-12-31')
569
631
  ownership.get_ownership_change_events(company_id='VALE3', start_date='2024-01-01', end_date='2024-12-31')
570
632
  ownership.get_ownership_official_notices(company_id='PETR4')
633
+ ownership.get_notice_summary(url='https://www.rad.cvm.gov.br/ENETWEB/frmGerenciaPastaDeArquivos.aspx?numProtocolo=1234567')
571
634
  ownership.get_ownership_control_group(company_id='VALE3')
572
635
  ownership.get_ownership_free_float(company_id='PETR4')
573
636
  ownership.get_shareholder_holdings(shareholder_id='00.000.000/0001-91')
@@ -585,11 +648,14 @@ macro.get_macro_indicators(indicator='ipca_contributions', start_date='2024-01',
585
648
  macro.get_macro_indicators(indicator='gdp', type='yoy')
586
649
  macro.get_macro_indicators(indicator='comexstat', year='2024', state='SP')
587
650
  macro.get_macro_indicators(indicator='rreo', year='2024', period='6')
588
- macro.get_maximum_theoretical_margin(asset='PETR4', report_date='2024-12-31')
589
- macro.get_dpmfi(start_date='2024-01', end_date='2024-12', status='dados_oficiais')
590
- macro.get_dpmfi_composition(bond_type='IPCA')
651
+ macro.get_maximum_theoretical_margin(asset='PETR4', report_date='2024-12-31')
652
+ macro.get_dpmfi(start_date='2024-01', end_date='2024-12', status='dados_oficiais')
653
+ macro.get_dpmfi(snapshot_date='2026-06-24', limit=10) # reproducible scoped snapshot
654
+ macro.get_dpmfi_composition(bond_type='IPCA')
591
655
  ```
592
656
 
657
+ `AlternativeDataMacroMarkets` exposes the public-sources market-data endpoint for B3 maximum theoretical margin. The direct market-data `investor-categories` endpoint is intentionally not exposed in this package.
658
+
593
659
  ### Reference Data
594
660
 
595
661
  #### Corporate Events
@@ -1,4 +1,4 @@
1
- __version__ = "4.0.0"
1
+ __version__ = "4.2.0"
2
2
 
3
3
  from .websocket import *
4
4
  from .rest import *
@@ -22,3 +22,29 @@ from .alternative_data_people import AlternativeDataPeople
22
22
  from .alternative_data_funds import AlternativeDataFunds
23
23
  from .alternative_data_ownership import AlternativeDataOwnership
24
24
  from .alternative_data_macro_markets import AlternativeDataMacroMarkets
25
+ from .alternative_data_catalog import (
26
+ PUBLIC_SOURCES_CONVENTIONS,
27
+ PUBLIC_SOURCES_DATA_GAPS,
28
+ PUBLIC_SOURCES_ENDPOINT_DESCRIPTIONS,
29
+ PUBLIC_SOURCES_ENDPOINT_RELATIONSHIPS,
30
+ PUBLIC_SOURCES_ENDPOINTS,
31
+ PUBLIC_SOURCES_EXCLUDED_ENDPOINTS,
32
+ PUBLIC_SOURCES_TOOL_DESCRIPTIONS,
33
+ PUBLIC_SOURCES_TOOL_ENDPOINTS,
34
+ get_public_sources_endpoint,
35
+ get_public_sources_endpoint_description,
36
+ get_public_sources_tool_description,
37
+ get_public_sources_tool_manifest,
38
+ )
39
+ from .dataservices_catalog import (
40
+ DATASERVICES_CONVENTIONS,
41
+ DATASERVICES_ENDPOINT_DESCRIPTIONS,
42
+ DATASERVICES_ENDPOINT_RELATIONSHIPS,
43
+ DATASERVICES_ENDPOINTS,
44
+ DATASERVICES_TOOL_DESCRIPTIONS,
45
+ DATASERVICES_TOOL_ENDPOINTS,
46
+ get_dataservices_endpoint,
47
+ get_dataservices_endpoint_description,
48
+ get_dataservices_tool_description,
49
+ get_dataservices_tool_manifest,
50
+ )