Tool Calling

Below, you can find all the tools that are available for tool calling.

For examples on how to call these tools via OpenAI, Anthropic, or Gemini, see the LLM-ready API examples.

Note: The tool definitions below cannot be called directly and are intended for documentation only. They are auto-generated from langchain BaseTools. To see the BaseTool behind a function definition, click on the source of the definition.

get_latest(use_local_timezone: bool = True) LatestPeriods[source]

Get the latest annual reporting year, latest quarterly reporting quarter and year, and current date.

Parameters:

use_local_timezone (bool) – Whether to use the local timezone of the user

Return type:

LatestPeriods

get_n_quarters_ago(n: int) YearAndQuarter[source]

Get the year and quarter corresponding to [n] quarters before the current quarter.

Parameters:

n (int) – Number of quarters before the current quarter

Return type:

YearAndQuarter

get_business_relationship_from_identifiers(identifiers: list[str], business_relationship: BusinessRelationshipType) GetBusinessRelationshipFromIdentifiersResp[source]

Get the current and previous companies that have a specified business relationship with each of the provided identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • Results include both “current” (active) and “previous” (historical) relationships.

Examples: Query: “Who are the current and previous suppliers of Intel?” Function: get_business_relationship_from_identifiers(identifiers=[“Intel”], business_relationship=”supplier”)

Query: “What are the borrowers of SPGI and JPM?” Function: get_business_relationship_from_identifiers(identifiers=[“SPGI”, “JPM”], business_relationship=”borrower”)

Query: “Who are Dell’s customers?” Function: get_business_relationship_from_identifiers(identifiers=[“Dell”], business_relationship=”customer”)

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param business_relationship:

The type of business relationship

type business_relationship:

BusinessRelationshipType

rtype:

GetBusinessRelationshipFromIdentifiersResp

get_capitalization_from_identifiers(identifiers: list[str], capitalization: Capitalization, start_date: date | None = None, end_date: date | None = None) GetCapitalizationFromIdentifiersResp[source]

Get the historical market cap, tev (Total Enterprise Value), or shares outstanding for a group of identifiers between inclusive start_date and inclusive end date.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • When requesting the most recent values, leave start_date and end_date null.

  • For annual data (e.g., “market cap in 2020”, “FY2021 values”), use the full year range: start_date as January 1st and end_date as December 31st.

  • For “latest” or “current” values, always leave dates null to get the most recent data point.

  • Only specify date ranges when the user explicitly requests historical data over a specific period.

Examples: Query: “What are the market caps of Visa and Mastercard?” Function: get_capitalization_from_identifiers(capitalization=”market_cap”, identifiers=[“Visa”, “Mastercard”], start_date=null, end_date=null)

Query: “What was MDT’s market cap in 2020?” Function: get_capitalization_from_identifiers(capitalization=”market_cap”, identifiers=[“MDT”], start_date=”2020-01-01”, end_date=”2020-12-31”)

Query: “Market cap trends for MSFT from Q1 2020 to Q3 2021” Function: get_capitalization_from_identifiers(capitalization=”market_cap”, identifiers=[“MSFT”], start_date=”2020-01-01”, end_date=”2021-09-30”)

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param capitalization:

The capitalization type

type capitalization:

Capitalization

param start_date:

The start date for historical capitalization retrieval. Use null for latest values. For annual data, use January 1st of the year.

type start_date:

Union[date, NoneType]

param end_date:

The end date for historical capitalization retrieval. Use null for latest values. For annual data, use December 31st of the year.

type end_date:

Union[date, NoneType]

rtype:

GetCapitalizationFromIdentifiersResp

get_info_from_identifiers(identifiers: list[str]) GetInfoFromIdentifiersResp[source]

Get the information associated with a list of identifiers. Info includes company name, status, type, simple industry, number of employees (if available), founding date, webpage, HQ address, HQ city, HQ zip code, HQ state, HQ country, HQ country iso code, and CIQ company_id.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “What’s the company information for Northrop Grumman and Lockheed Martin?” Function: get_info_from_identifiers(identifiers=[“Northrop Grumman”, “Lockheed Martin”])

Query: “Get company info for UBER and LYFT” Function: get_info_from_identifiers(identifiers=[“UBER”, “LYFT”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetInfoFromIdentifiersResp

get_company_other_names_from_identifiers(identifiers: list[str]) GetCompanyOtherNamesFromIdentifiersResp[source]

Given a list of identifiers, fetch the alternate, historical, and native names associated with each identifier. Alternate names are additional names a company might go by (for example, Hewlett-Packard Company also goes by the name HP). Historical names are previous names for the company if it has changed over time. Native names are primary non-Latin character native names for global companies, including languages such as Arabic, Russian, Greek, Japanese, etc. This also includes limited history on native name changes.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “What are the alternate names for Meta and Alphabet?” Function: get_company_other_names_from_identifiers(identifiers=[“Meta”, “Alphabet”])

Query: “Get other names for NSRGY” Function: get_company_other_names_from_identifiers(identifiers=[“NSRGY”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetCompanyOtherNamesFromIdentifiersResp

get_company_summary_from_identifiers(identifiers: list[str]) GetCompanySummaryFromIdentifiersResp[source]

Get one paragraph summary/short descriptions of companies, including information about the company’s primary business, products and services offered and their applications, business segment details, client/customer groups served, geographic markets served, distribution channels, strategic alliances/partnerships, founded/incorporated year, latest former name, and headquarters and additional offices.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “Give me summaries of Tesla and General Motors” Function: get_company_summary_from_identifiers(identifiers=[“Tesla”, “General Motors”])

Query: “What are the summaries for F and STLA?” Function: get_company_summary_from_identifiers(identifiers=[“F”, “STLA”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetCompanySummaryFromIdentifiersResp

get_company_description_from_identifiers(identifiers: list[str]) GetCompanyDescriptionFromIdentifiersResp[source]

Get detailed descriptions of companies, broken down into sections, which may include information about the company’s Primary business, Segments (including Products and Services for each), Competition, Significant events, and History. Within the text, four spaces represent a new paragraph. Note that the description is divided into sections with headers, where each section has a new paragraph (four spaces) before and after the section header.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “Get detailed descriptions for Netflix and Disney” Function: get_company_description_from_identifiers(identifiers=[“Netflix”, “Disney”])

Query: “What are the detailed company descriptions for KO and PEP?” Function: get_company_description_from_identifiers(identifiers=[“KO”, “PEP”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetCompanyDescriptionFromIdentifiersResp

get_financial_auditors_from_identifiers(identifiers: list[str], calendar_type: CalendarType | None = None, start_year: int | None = None, end_year: int | None = None) GetFinancialAuditorsFromIdentifiersResp[source]

Get the financial auditors for a list of companies, grouped by period. Each period lists the auditor company name and auditor company ID.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • To fetch all available auditor history, leave all time parameters as null.

  • Use start_year and end_year to filter the date range.

  • Set calendar_type based on how the query references the time period—use “fiscal” for fiscal year references and “calendar” for calendar year references. calendar_type controls which year system start_year and end_year apply to.

  • When calendar_type=None, it defaults to ‘fiscal’.

Examples: Query: “Who are the auditors for S&P Global?” Function: get_financial_auditors_from_identifiers(identifiers=[“S&P Global”])

Query: “Get the financial auditors for Apple and Microsoft from 2020 to 2023” Function: get_financial_auditors_from_identifiers(identifiers=[“Apple”, “Microsoft”], start_year=2020, end_year=2023)

Query: “Who has audited Tesla since fiscal year 2020?” Function: get_financial_auditors_from_identifiers(identifiers=[“Tesla”], calendar_type=”fiscal”, start_year=2020)

Query: “Get auditors for WMT for calendar years 2019 to 2021” Function: get_financial_auditors_from_identifiers(identifiers=[“WMT”], calendar_type=”calendar”, start_year=2019, end_year=2021)

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param calendar_type:

Fiscal or calendar year

type calendar_type:

Union[CalendarType, NoneType]

param start_year:

The starting year for the data range. Use null for all available data.

type start_year:

Union[int, NoneType]

param end_year:

The ending year for the data range. Use null for all available data.

type end_year:

Union[int, NoneType]

rtype:

GetFinancialAuditorsFromIdentifiersResp

get_competitors_from_identifiers(identifiers: list[str], competitor_source: CompetitorSource) GetCompetitorsFromIdentifiersResp[source]

Retrieves a list of company_id and company_name that are competitors for a list of companies, filtered by the source of the competitor information.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • Available competitor sources: all, filing (from SEC filings), key_dev (from key developments), contact (from contact relationships), third_party (from third-party sources), self_identified (self-identified), named_by_competitor (from competitor’s perspective)

Examples: Query: “Who are Microsoft’s competitors from SEC filings?” Function: get_competitors_from_identifiers(identifiers=[“Microsoft”], competitor_source=”filing”)

Query: “Get all competitors of AAPL and GOOGL” Function: get_competitors_from_identifiers(identifiers=[“AAPL”, “GOOGL”], competitor_source=”all”)

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param competitor_source:

The source type of the competitor information: ‘filing’ (from SEC filings), ‘key_dev’ (from key developments), ‘contact’ (from contact relationships), ‘third_party’ (from third-party sources), ‘self_identified’ (self-identified), ‘named_by_competitor’ (from competitor’s perspective).

type competitor_source:

CompetitorSource

rtype:

GetCompetitorsFromIdentifiersResp

get_cusip_from_identifiers(identifiers: list[str]) GetCusipOrIsinFromIdentifiersResp[source]

Get the CUSIPs for a group of identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “What is the CUSIP for Humana?” Function: get_cusip_from_identifiers(identifiers=[“Humana”])

Query: “Get CUSIPs for ATO and DTE” Function: get_cusip_from_identifiers(identifiers=[“ATO”, “DTE”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetCusipOrIsinFromIdentifiersResp

get_isin_from_identifiers(identifiers: list[str]) GetCusipOrIsinFromIdentifiersResp[source]

Get the ISINs for a group of identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “What is the ISIN for Autodesk?” Function: get_isin_from_identifiers(identifiers=[“Autodesk”])

Query: “Get ISINs for RCL and CCL” Function: get_isin_from_identifiers(identifiers=[“RCL”, “CCL”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetCusipOrIsinFromIdentifiersResp

get_earnings_from_identifiers(identifiers: list[str]) GetEarningsFromIdentifiersResp[source]

Get all earnings calls for a list of identifiers.

Returns a list of dictionaries with ‘name’ (str), ‘key_dev_id’ (int), and ‘datetime’ (str in ISO 8601 format with UTC timezone) attributes for each identifier.

  • Use get_latest_earnings_from_identifiers to get only the most recent earnings

  • Use get_next_earnings_from_identifiers to get only the next upcoming earnings

  • To fetch the full transcript, call get_transcript_from_key_dev_id with the key_dev_id

Examples: Query: “Get all earnings calls for Microsoft” Function: get_earnings_from_identifiers(identifiers=[“Microsoft”])

Query: “Get earnings for CRM and ORCL” Function: get_earnings_from_identifiers(identifiers=[“CRM”, “ORCL”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetEarningsFromIdentifiersResp

get_latest_earnings_from_identifiers(identifiers: list[str]) GetNextOrLatestEarningsFromIdentifiersResp[source]

Get the latest (most recent) earnings call for a list of identifiers.

Returns a dictionary with ‘name’ (str), ‘key_dev_id’ (int), and ‘datetime’ (str in ISO 8601 format with UTC timezone) attributes for each identifier.

  • Use get_earnings_from_identifiers for all historical earnings

  • Use get_next_earnings_from_identifiers for upcoming earnings

  • To fetch the full transcript, call get_transcript_from_key_dev_id with the key_dev_id

Examples: Query: “What was Microsoft’s latest earnings call?” Function: get_latest_earnings_from_identifiers(identifiers=[“Microsoft”])

Query: “Get latest earnings for JPM and GS” Function: get_latest_earnings_from_identifiers(identifiers=[“JPM”, “GS”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetNextOrLatestEarningsFromIdentifiersResp

get_next_earnings_from_identifiers(identifiers: list[str]) GetNextOrLatestEarningsFromIdentifiersResp[source]

Get the next scheduled earnings call for a list of identifiers.

Returns a dictionary with ‘name’ (str), ‘key_dev_id’ (int), and ‘datetime’ (str in ISO 8601 format with UTC timezone) attributes for each identifier.

  • Use get_latest_earnings_from_identifiers for the most recent completed earnings

  • Use get_earnings_from_identifiers for all historical earnings

  • To fetch the full transcript (once available), call get_transcript_from_key_dev_id with the key_dev_id

Examples: Query: “When is Waste Management’s next earnings call?” Function: get_next_earnings_from_identifiers(identifiers=[“Waste Management”])

Query: “Get next earnings for FDX and UPS” Function: get_next_earnings_from_identifiers(identifiers=[“FDX”, “UPS”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetNextOrLatestEarningsFromIdentifiersResp

get_transcript_from_key_dev_id(key_dev_id: int) GetTranscriptFromKeyDevIdResp[source]

Get the raw transcript text for an earnings call by key_dev_id.

The key_dev_id is obtained from earnings tools (get_earnings_from_identifiers, get_latest_earnings_from_identifiers, or get_next_earnings_from_identifiers).

Example: Query: “Get the transcript for earnings call 12346” Function: get_transcript_from_key_dev_id(key_dev_id=12346)

param key_dev_id:

The key_dev_id for the earnings call

type key_dev_id:

int

rtype:

GetTranscriptFromKeyDevIdResp

get_financial_line_item_from_identifiers(identifiers: list[str], line_item: str, period_type: PeriodType | None = None, start_year: int | None = None, end_year: int | None = None, start_quarter: Literal[1, 2, 3, 4] | None = None, end_quarter: Literal[1, 2, 3, 4] | None = None, calendar_type: CalendarType | None = None, num_periods: int | None = None, num_periods_back: int | None = None) GetFinancialLineItemFromIdentifiersResp[source]

Get the financial line item associated with a list of identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • To fetch the most recent value, leave all time parameters as null.

  • Line item names are case-insensitive, use underscores, and support common aliases (e.g., ‘revenue’ and ‘normal_revenue’ return the same data).

  • To filter by time, use either absolute time (start_year, end_year, start_quarter, end_quarter) OR relative time (num_periods, num_periods_back)—but not both.

  • Set calendar_type based on how the query references the time period—use “fiscal” for fiscal year references and “calendar” for calendar year references.

  • When calendar_type=None, it defaults to ‘fiscal’.

  • Exception: with multiple identifiers and absolute time, calendar_type=None defaults to ‘calendar’ for cross-company comparability; calendar_type=’fiscal’ returns fiscal data but should not be compared across companies since fiscal years have different end dates.

Examples: Query: “Get MSFT and AAPL revenue and gross profit quarterly” Function: get_financial_line_item_from_identifiers(line_item=”revenue”, identifiers=[“MSFT”, “AAPL”], period_type=”quarterly”) Function: get_financial_line_item_from_identifiers(line_item=”gross_profit”, identifiers=[“MSFT”, “AAPL”], period_type=”quarterly”)

Query: “General Electric’s ebt excluding unusual items for FY2023” Function: get_financial_line_item_from_identifiers(line_item=”ebt_excluding_unusual_items”, identifiers=[“General Electric”], period_type=”annual”, calendar_type=”fiscal”, start_year=2023, end_year=2023)

Query: “What is the most recent three quarters except one ppe for Exxon and Hasbro?” Function: get_financial_line_item_from_identifiers(line_item=”ppe”, period_type=”quarterly”, num_periods=2, num_periods_back=1, identifiers=[“Exxon”, “Hasbro”])

Query: “What are the ytd operating income values for Hilton for the calendar year 2022?” Function: get_financial_line_item_from_identifiers(line_item=”operating_income”, period_type=”ytd”, calendar_type=”calendar”, start_year=2022, end_year=2022, identifiers=[“Hilton”])

Query: “Compare AAPL and MSFT revenue for 2023” Function: get_financial_line_item_from_identifiers(line_item=”revenue”, identifiers=[“AAPL”, “MSFT”], period_type=”annual”, calendar_type=”calendar”, start_year=2023, end_year=2023)

Note: This tool automatically includes explanatory notes about data sources, fiscal period warnings, and terminology guidelines.

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param line_item:

The type of financial line_item requested

type line_item:

Literal[‘regular_revenue’, ‘operating_revenue’, ‘normal_revenue’, ‘finance_division_revenue’, ‘insurance_division_revenue’, ‘revenue_from_sale_of_assets’, ‘revenue_from_sale_of_investments’, ‘revenue_from_interest_and_investment_income’, ‘other_revenue’, ‘total_other_revenue’, ‘fees_and_other_income’, ‘total_revenue’, ‘combined_revenue’, ‘revenue’, ‘cost_of_goods_sold’, ‘cogs’, ‘finance_division_operating_expense’, ‘operating_expense_finance_division’, ‘insurance_division_operating_expense’, ‘operating_expense_insurance_division’, ‘finance_division_interest_expense’, ‘interest_expense_finance_division’, ‘cost_of_revenue’, ‘cor’, ‘gross_profit’, ‘selling_general_and_admin_expense’, ‘selling_general_and_admin_cost’, ‘sg_and_a’, ‘selling_general_and_admin’, ‘sga’, ‘exploration_and_drilling_costs’, ‘exploration_and_drilling_expense’, ‘provision_for_bad_debts’, ‘provision_for_bad_debt’, ‘pre_opening_costs’, ‘pre_opening_expense’, ‘total_selling_general_and_admin_expense’, ‘total_sga’, ‘total_selling_general_and_admin_cost’, ‘total_selling_general_and_admin’, ‘research_and_development_expense’, ‘r_and_d_expense’, ‘rnd_cost’, ‘rnd_expense’, ‘research_and_development_cost’, ‘r_and_d_cost’, ‘depreciation_and_amortization’, ‘dna’, ‘d_and_a’, ‘amortization_of_goodwill_and_intangibles’, ‘impairment_of_oil_gas_and_mineral_properties’, ‘impairment_of_oil_and_gas’, ‘impairment_o_and_g’, ‘total_depreciation_and_amortization’, ‘total_dna’, ‘total_d_and_a’, ‘other_operating_expense’, ‘total_other_operating_expense’, ‘total_operating_expense’, ‘operating_expense’, ‘operating_income’, ‘interest_expense’, ‘interest_and_investment_income’, ‘net_interest_expense’, ‘income_from_affiliates’, ‘currency_exchange_gains’, ‘other_non_operating_income’, ‘total_other_non_operating_income’, ‘ebt_excluding_unusual_items’, ‘earnings_before_taxes_excluding_unusual_items’, ‘restructuring_charges’, ‘merger_charges’, ‘merger_and_restructuring_charges’, ‘impairment_of_goodwill’, ‘gain_from_sale_of_assets’, ‘gain_from_sale_of_investments’, ‘asset_writedown’, ‘in_process_research_and_development_expense’, ‘in_process_rnd_cost’, ‘in_process_rnd_expense’, ‘in_process_r_and_d_cost’, ‘in_process_r_and_d_expense’, ‘in_process_research_and_development_cost’, ‘insurance_settlements’, ‘legal_settlements’, ‘other_unusual_items’, ‘total_other_unusual_items’, ‘total_unusual_items’, ‘unusual_items’, ‘ebt_including_unusual_items’, ‘earnings_before_taxes_including_unusual_items’, ‘income_tax_expense’, ‘income_taxes’, ‘income_tax’, ‘earnings_from_continued_operations’, ‘continued_operations_earnings’, ‘earnings_from_discontinued_operations’, ‘discontinued_operations_earnings’, ‘extraordinary_item_and_accounting_change’, ‘net_income_to_company’, ‘minority_interest_in_earnings’, ‘net_income_to_minority_interest’, ‘net_income’, ‘premium_on_redemption_of_preferred_stock’, ‘preferred_stock_dividend’, ‘other_preferred_stock_adjustments’, ‘other_adjustments_to_net_income’, ‘preferred_dividends_and_other_adjustments’, ‘net_income_allocable_to_general_partner’, ‘net_income_to_common_shareholders_including_extra_items’, ‘net_income_to_common_shareholders_excluding_extra_items’, ‘cash_and_equivalents’, ‘cash’, ‘cash_and_cash_equivalents’, ‘short_term_investments’, ‘trading_asset_securities’, ‘total_cash_and_short_term_investments’, ‘cash_and_short_term_investments’, ‘accounts_receivable’, ‘current_accounts_receivable’, ‘short_term_accounts_receivable’, ‘other_receivables’, ‘short_term_other_receivables’, ‘current_other_receivables’, ‘notes_receivable’, ‘current_notes_receivable’, ‘short_term_notes_receivable’, ‘total_receivables’, ‘short_term_total_receivables’, ‘short_term_total_receivable’, ‘current_total_receivable’, ‘total_receivable’, ‘current_total_receivables’, ‘inventory’, ‘inventories’, ‘prepaid_expense’, ‘prepaid_expenses’, ‘finance_division_loans_and_leases_short_term’, ‘finance_division_short_term_loans_and_leases’, ‘short_term_loans_and_leases_of_the_finance_division’, ‘short_term_finance_division_loans_and_leases’, ‘finance_division_other_current_assets’, ‘other_current_assets_of_the_finance_division’, ‘other_short_term_assets_of_the_finance_division’, ‘finance_division_other_short_term_assets’, ‘loans_held_for_sale’, ‘deferred_tax_asset_current_portion’, ‘current_deferred_tax_asset’, ‘short_term_deferred_tax_asset’, ‘restricted_cash’, ‘other_current_assets’, ‘total_current_assets’, ‘current_assets’, ‘total_short_term_assets’, ‘short_term_assets’, ‘gross_property_plant_and_equipment’, ‘gppe’, ‘gross_ppe’, ‘accumulated_depreciation’, ‘net_property_plant_and_equipment’, ‘net_ppe’, ‘property_plant_and_equipment’, ‘nppe’, ‘ppe’, ‘long_term_investments’, ‘non_current_investments’, ‘goodwill’, ‘other_intangibles’, ‘finance_division_loans_and_leases_long_term’, ‘long_term_finance_division_loans_and_leases’, ‘finance_division_long_term_loans_and_leases’, ‘long_term_loans_and_leases_of_the_finance_division’, ‘finance_division_other_non_current_assets’, ‘other_long_term_assets_of_the_finance_division’, ‘other_non_current_assets_of_the_finance_division’, ‘finance_division_other_long_term_assets’, ‘long_term_accounts_receivable’, ‘non_current_accounts_receivable’, ‘long_term_loans_receivable’, ‘loans_receivable’, ‘non_current_loans_receivable’, ‘long_term_deferred_tax_assets’, ‘non_current_deferred_tax_assets’, ‘long_term_deferred_charges’, ‘non_current_deferred_charges’, ‘other_long_term_assets’, ‘other_non_current_assets’, ‘long_term_other_assets’, ‘non_current_other_assets’, ‘total_assets’, ‘assets’, ‘accounts_payable’, ‘accrued_expenses’, ‘short_term_borrowings’, ‘current_borrowing’, ‘current_borrowings’, ‘short_term_borrowing’, ‘current_portion_of_long_term_debt’, ‘current_portion_of_non_current_debt’, ‘current_portion_of_lt_debt’, ‘current_portion_of_capital_leases’, ‘current_portion_of_cap_leases’, ‘current_portion_of_capitalized_leases’, ‘current_portion_of_leases’, ‘current_portion_of_long_term_debt_and_capital_leases’, ‘current_portion_of_lt_debt_and_cap_leases’, ‘total_current_portion_of_long_term_debt_and_capitalized_leases’, ‘total_current_portion_of_non_current_debt_and_capital_leases’, ‘current_portion_of_non_current_debt_and_capital_leases’, ‘total_current_portion_of_long_term_debt_and_capital_leases’, ‘current_portion_of_long_term_debt_and_capitalized_leases’, ‘current_portion_of_non_current_debt_and_capitalized_leases’, ‘total_current_portion_of_lt_debt_and_cap_leases’, ‘total_current_portion_of_non_current_debt_and_capitalized_leases’, ‘finance_division_debt_current_portion’, ‘finance_division_other_current_liabilities’, ‘current_income_taxes_payable’, ‘current_portion_of_income_taxes_payable’, ‘current_unearned_revenue’, ‘current_portion_of_unearned_revenue’, ‘current_deferred_tax_liability’, ‘other_current_liability’, ‘other_current_liabilities’, ‘total_current_liabilities’, ‘current_liabilities’, ‘long_term_debt’, ‘non_current_debt’, ‘capital_leases’, ‘capitalized_leases’, ‘long_term_leases’, ‘finance_division_debt_non_current_portion’, ‘finance_division_long_term_debt’, ‘finance_division_non_current_debt’, ‘finance_division_debt_long_term_portion’, ‘finance_division_other_non_current_liabilities’, ‘finance_division_other_long_term_liabilities’, ‘non_current_unearned_revenue’, ‘long_term_unearned_revenue’, ‘pension_and_other_post_retirement_benefit’, ‘non_current_deferred_tax_liability’, ‘other_non_current_liabilities’, ‘non_current_other_liabilities’, ‘other_long_term_liabilities’, ‘long_term_other_liabilities’, ‘total_liabilities’, ‘liabilities’, ‘preferred_stock_redeemable’, ‘redeemable_preferred_stock’, ‘preferred_stock_non_redeemable’, ‘non_redeemable_preferred_stock’, ‘preferred_stock_convertible’, ‘convertible_preferred_stock’, ‘preferred_stock_other’, ‘other_preferred_stock’, ‘preferred_stock_additional_paid_in_capital’, ‘additional_paid_in_capital_preferred_stock’, ‘preferred_stock_equity_adjustment’, ‘equity_adjustment_preferred_stock’, ‘treasury_stock_preferred_stock_convertible’, ‘treasury_convertible_preferred_stock’, ‘treasury_preferred_stock_convertible’, ‘treasury_stock_convertible_preferred_stock’, ‘treasury_stock_preferred_stock_non_redeemable’, ‘treasury_preferred_stock_non_redeemable’, ‘treasury_stock_non_redeemable_preferred_stock’, ‘treasury_non_redeemable_preferred_stock’, ‘treasury_stock_preferred_stock_redeemable’, ‘treasury_stock_redeemable_preferred_stock’, ‘treasury_preferred_stock_redeemable’, ‘treasury_redeemable_preferred_stock’, ‘total_preferred_equity’, ‘preferred_stock’, ‘preferred_equity’, ‘total_preferred_stock’, ‘common_stock’, ‘additional_paid_in_capital’, ‘retained_earnings’, ‘treasury_stock’, ‘other_equity’, ‘total_common_equity’, ‘common_equity’, ‘total_equity’, ‘equity’, ‘shareholders_equity’, ‘total_shareholders_equity’, ‘total_liabilities_and_equity’, ‘liabilities_and_equity’, ‘common_shares_outstanding’, ‘adjustments_to_cash_flow_net_income’, ‘other_amortization’, ‘total_other_non_cash_items’, ‘net_decrease_in_loans_originated_and_sold’, ‘provision_for_credit_losses’, ‘loss_on_equity_investments’, ‘stock_based_compensation’, ‘tax_benefit_from_stock_options’, ‘net_cash_from_discontinued_operation’, ‘cash_from_discontinued_operation’, ‘other_operating_activities’, ‘change_in_trading_asset_securities’, ‘change_in_accounts_receivable’, ‘change_in_inventories’, ‘change_in_accounts_payable’, ‘change_in_unearned_revenue’, ‘change_in_income_taxes’, ‘change_in_deferred_taxes’, ‘change_in_other_net_operating_assets’, ‘change_in_net_operating_assets’, ‘cash_from_operations’, ‘cash_flow_from_operations’, ‘cash_from_operating_activities’, ‘capital_expenditure’, ‘capex’, ‘capital_expenditures’, ‘sale_of_property_plant_and_equipment’, ‘sale_of_ppe’, ‘cash_acquisitions’, ‘divestitures’, ‘sale_of_real_estate’, ‘sale_of_real_properties’, ‘sale_of_real_estate_properties’, ‘sale_of_intangible_assets’, ‘sale_of_intangible_asset’, ‘sale_of_intangibles’, ‘net_cash_from_investments’, ‘net_decrease_in_investment_loans_originated_and_sold’, ‘other_investing_activities’, ‘total_other_investing_activities’, ‘cash_from_investing’, ‘cashflow_from_investing_activities’, ‘cashflow_from_investing’, ‘cash_from_investing_activities’, ‘short_term_debt_issued’, ‘current_debt_issued’, ‘long_term_debt_issued’, ‘non_current_debt_issued’, ‘total_debt_issued’, ‘short_term_debt_repaid’, ‘current_debt_repaid’, ‘long_term_debt_repaid’, ‘non_current_debt_repaid’, ‘total_debt_repaid’, ‘issuance_of_common_stock’, ‘repurchase_of_common_stock’, ‘issuance_of_preferred_stock’, ‘repurchase_of_preferred_stock’, ‘common_dividends_paid’, ‘preferred_dividends_paid’, ‘total_dividends_paid’, ‘dividends_paid’, ‘special_dividends_paid’, ‘other_financing_activities’, ‘cash_from_financing’, ‘cash_from_financing_activities’, ‘cashflow_from_financing’, ‘cashflow_from_financing_activities’, ‘foreign_exchange_rate_adjustments’, ‘fx_adjustments’, ‘foreign_exchange_adjustments’, ‘miscellaneous_cash_flow_adjustments’, ‘misc_cash_flow_adj’, ‘net_change_in_cash’, ‘change_in_cash’, ‘depreciation’, ‘depreciation_of_rental_assets’, ‘sale_proceeds_from_rental_assets’, ‘basic_eps’, ‘basic_earning_per_share_including_extra_items’, ‘basic_eps_including_extra_items’, ‘basic_earning_per_share’, ‘basic_eps_excluding_extra_items’, ‘basic_earning_per_share_excluding_extra_items’, ‘basic_eps_from_accounting_change’, ‘basic_earning_per_share_from_accounting_change’, ‘basic_eps_from_extraordinary_items’, ‘basic_earning_per_share_from_extraordinary_items’, ‘basic_eps_from_accounting_change_and_extraordinary_items’, ‘basic_earning_per_share_from_accounting_change_and_extraordinary_items’, ‘weighted_average_basic_shares_outstanding’, ‘diluted_eps’, ‘diluted_eps_including_extra_items’, ‘diluted_earning_per_share’, ‘diluted_earning_per_share_including_extra_items’, ‘diluted_eps_excluding_extra_items’, ‘diluted_earning_per_share_excluding_extra_items’, ‘weighted_average_diluted_shares_outstanding’, ‘normalized_basic_eps’, ‘normalized_basic_earning_per_share’, ‘normalized_diluted_eps’, ‘normalized_diluted_earning_per_share’, ‘dividends_per_share’, ‘distributable_cash_per_share’, ‘diluted_eps_from_accounting_change_and_extraordinary_items’, ‘diluted_earning_per_share_from_accounting_change_and_extraordinary_items’, ‘diluted_eps_from_accounting_change’, ‘diluted_earning_per_share_from_accounting_change’, ‘diluted_eps_from_extraordinary_items’, ‘diluted_earning_per_share_from_extraordinary_items’, ‘diluted_eps_from_discontinued_operations’, ‘diluted_earning_per_share_from_discontinued_operations’, ‘funds_from_operations’, ‘ffo’, ‘ebitda’, ‘earnings_before_interest_taxes_depreciation_and_amortization’, ‘ebita’, ‘earnings_before_interest_taxes_and_amortization’, ‘ebit’, ‘earnings_before_interest_and_taxes’, ‘ebitdar’, ‘earnings_before_interest_taxes_depreciation_amortization_and_rental_expense’, ‘net_debt’, ‘effective_tax_rate’, ‘tax_rate’, ‘current_ratio’, ‘quick_ratio’, ‘total_debt_to_capital’, ‘net_working_capital’, ‘working_capital’, ‘change_in_net_working_capital’, ‘total_debt’, ‘total_debt_to_equity_ratio’, ‘total_debt_ratio’, ‘total_debt_to_equity’, ‘total_debt_to_total_equity’, ‘debt_ratio’]

param period_type:

The period type (annual or quarterly)

type period_type:

Union[PeriodType, NoneType]

param start_year:

The starting year for the data range. Use null for the most recent data.

type start_year:

Union[int, NoneType]

param end_year:

The ending year for the data range. Use null for the most recent data.

type end_year:

Union[int, NoneType]

param start_quarter:

Starting quarter (1-4). Only used when period_type is quarterly.

type start_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param end_quarter:

Ending quarter (1-4). Only used when period_type is quarterly.

type end_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param calendar_type:

Fiscal year or calendar year

type calendar_type:

Union[CalendarType, NoneType]

param num_periods:

The number of periods to retrieve data for (1-99)

type num_periods:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods to retrieve data for (1-99)’, metadata=[Ge(ge=1), Le(le=99)])], NoneType]

param num_periods_back:

The end period of the data range expressed as number of periods back relative to the present period (0-99)

type num_periods_back:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The end period of the data range expressed as number of periods back relative to the present period (0-99)’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

rtype:

GetFinancialLineItemFromIdentifiersResp

get_prices_from_identifiers(identifiers: list[str], start_date: date | None = None, end_date: date | None = None, periodicity: Periodicity = Periodicity.day, adjusted: bool = True) GetPricesFromIdentifiersResp[source]

Get the historical open, high, low, and close prices, and volume of a group of identifiers between inclusive start_date and inclusive end date.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • When requesting the most recent values, leave start_date and end_date null.

  • For annual queries (e.g., “prices in 2020”), use the full year range from January 1st to December 31st.

  • If requesting prices for long periods of time (e.g., multiple years), consider using a coarser periodicity (e.g., weekly or monthly) to reduce the amount of data returned.

Examples: Query: “What are the prices of Facebook and Google?” Function: get_prices_from_identifiers(identifiers=[“Facebook”, “Google”], start_date=null, end_date=null)

Query: “Get prices for META and GOOGL” Function: get_prices_from_identifiers(identifiers=[“META”, “GOOGL”], start_date=null, end_date=null)

Query: “How did Meta’s stock perform in 2020?” Function: get_prices_from_identifiers(identifiers=[“Meta”], start_date=”2020-01-01”, end_date=”2020-12-31”, periodicity=”day”)

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param start_date:

The start date for historical price retrieval. Use null for latest values. For annual queries (e.g., ‘prices in 2020’), use January 1st of the year.

type start_date:

Union[date, NoneType]

param end_date:

The end date for historical price retrieval. Use null for latest values. For annual queries (e.g., ‘prices in 2020’), use December 31st of the year.

type end_date:

Union[date, NoneType]

param periodicity:

The frequency or interval at which the historical data points are sampled or aggregated. Periodicity is not the same as the date range. The date range specifies the time span over which the data is retrieved, while periodicity determines how the data within that date range is aggregated.

type periodicity:

Periodicity

param adjusted:

Whether to retrieve adjusted prices that account for corporate actions such as dividends and splits.

type adjusted:

bool

rtype:

GetPricesFromIdentifiersResp

get_history_metadata_from_identifiers(identifiers: list[str]) GetHistoryMetadataFromIdentifiersResp[source]

Get the history metadata associated with a list of identifiers. History metadata includes currency, symbol, exchange name, instrument type, and first trade date.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

Examples: Query: “What exchange does Starbucks trade on?” Function: get_history_metadata_from_identifiers(identifiers=[“Starbucks”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetHistoryMetadataFromIdentifiersResp

get_segments_from_identifiers(identifiers: list[str], segment_type: SegmentType, period_type: PeriodType | None = None, start_year: int | None = None, end_year: int | None = None, start_quarter: Literal[1, 2, 3, 4] | None = None, end_quarter: Literal[1, 2, 3, 4] | None = None, calendar_type: CalendarType | None = None, num_periods: int | None = None, num_periods_back: int | None = None) GetSegmentsFromIdentifiersResp[source]

Get the templated business or geographic segments associated with a list of identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • To fetch the most recent segment data, leave all time parameters as null.

  • To filter by time, use either absolute time (start_year, end_year, start_quarter, end_quarter) OR relative time (num_periods, num_periods_back)—but not both.

  • Set calendar_type based on how the query references the time period—use “fiscal” for fiscal year references and “calendar” for calendar year references.

  • When calendar_type=None, it defaults to ‘fiscal’.

  • Exception: with multiple identifiers and absolute time, calendar_type=None defaults to ‘calendar’ for cross-company comparability; calendar_type=’fiscal’ returns fiscal data but should not be compared across companies since fiscal years have different end dates.

Examples: Query: “What are the business segments for AT&T?” Function: get_segments_from_identifiers(identifiers=[“AT&T”], segment_type=”business”)

Query: “Get most recent geographic segments for Pfizer and JNJ” Function: get_segments_from_identifiers(identifiers=[“Pfizer”, “JNJ”], segment_type=”geographic”)

Query: “What are the ltm business segments for SPGI for the last three calendar quarters but one?” Function: get_segments_from_identifiers(segment_type=”business”, period_type=”ltm”, calendar_type=”calendar”, num_periods=2, num_periods_back=1, identifiers=[“SPGI”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param segment_type:

The type of segment

type segment_type:

SegmentType

param period_type:

The period type

type period_type:

Union[PeriodType, NoneType]

param start_year:

The starting year for the data range

type start_year:

Union[int, NoneType]

param end_year:

The ending year for the data range

type end_year:

Union[int, NoneType]

param start_quarter:

Starting quarter

type start_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param end_quarter:

Ending quarter

type end_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param calendar_type:

Fiscal year or calendar year

type calendar_type:

Union[CalendarType, NoneType]

param num_periods:

The number of periods to retrieve data for (1-99)

type num_periods:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods to retrieve data for (1-99)’, metadata=[Ge(ge=1), Le(le=99)])], NoneType]

param num_periods_back:

The end period of the data range expressed as number of periods back relative to the present period (0-99)

type num_periods_back:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The end period of the data range expressed as number of periods back relative to the present period (0-99)’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

rtype:

GetSegmentsFromIdentifiersResp

get_financial_statement_from_identifiers(identifiers: list[str], statement: StatementType, period_type: PeriodType | None = None, start_year: int | None = None, end_year: int | None = None, start_quarter: Literal[1, 2, 3, 4] | None = None, end_quarter: Literal[1, 2, 3, 4] | None = None, calendar_type: CalendarType | None = None, num_periods: int | None = None, num_periods_back: int | None = None) GetFinancialStatementFromIdentifiersResp[source]

Get a financial statement (balance_sheet, income_statement, or cashflow) for a group of identifiers.

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • To fetch the most recent statement, leave all time parameters as null.

  • To filter by time, use either absolute time (start_year, end_year, start_quarter, end_quarter) OR relative time (num_periods, num_periods_back)—but not both.

  • Set calendar_type based on how the query references the time period—use “fiscal” for fiscal year references and “calendar” for calendar year references.

  • When calendar_type=None, it defaults to ‘fiscal’.

  • Exception: with multiple identifiers and absolute time, calendar_type=None defaults to ‘calendar’ for cross-company comparability; calendar_type=’fiscal’ returns fiscal data but should not be compared across companies since fiscal years have different end dates.

Examples: Query: “Fetch the balance sheets of Bank of America and Goldman Sachs for 2024” Function: get_financial_statement_from_identifiers(identifiers=[“Bank of America”, “Goldman Sachs”], statement=”balance_sheet”, period_type=”annual”, start_year=2024, end_year=2024)

Query: “Get income statements for NEE and DUK” Function: get_financial_statement_from_identifiers(identifiers=[“NEE”, “DUK”], statement=”income_statement”)

Query: “Q2 2023 cashflow for XOM” Function: get_financial_statement_from_identifiers(identifiers=[“XOM”], statement=”cashflow”, period_type=”quarterly”, start_year=2023, end_year=2023, start_quarter=2, end_quarter=2)

Query: “What is the balance sheet for The New York Times for the past 7 years except for the most recent 2 years?” Function: get_financial_statement_from_identifiers(statement=”balance_sheet”, num_periods=5, num_periods_back=2, identifiers=[“NYT”])

Query: “What are the annual income statement for the calendar years between 2013 and 2016 for BABA and W?” Function: get_financial_statement_from_identifiers(statement=”income_statement”, period_type=”annual”, calendar_type=”calendar”, start_year=2013, end_year=2016, identifiers=[“BABA”, “W”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param statement:

The type of financial statement

type statement:

StatementType

param period_type:

The period type (annual or quarterly)

type period_type:

Union[PeriodType, NoneType]

param start_year:

The starting year for the data range. Use null for the most recent data.

type start_year:

Union[int, NoneType]

param end_year:

The ending year for the data range. Use null for the most recent data.

type end_year:

Union[int, NoneType]

param start_quarter:

Starting quarter (1-4). Only used when period_type is quarterly.

type start_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param end_quarter:

Ending quarter (1-4). Only used when period_type is quarterly.

type end_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param calendar_type:

Fiscal year or calendar year

type calendar_type:

Union[CalendarType, NoneType]

param num_periods:

The number of periods to retrieve data for (1-99)

type num_periods:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods to retrieve data for (1-99)’, metadata=[Ge(ge=1), Le(le=99)])], NoneType]

param num_periods_back:

The end period of the data range expressed as number of periods back relative to the present period (0-99)

type num_periods_back:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The end period of the data range expressed as number of periods back relative to the present period (0-99)’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

rtype:

GetFinancialStatementFromIdentifiersResp

get_advisors_for_company_in_transaction(identifier: str, transaction_id: int) GetAdvisorsForCompanyInTransactionFromIdentifierResp[source]

Returns a list of advisor companies that provided advisory services to the specified company during a particular merger or acquisition transaction.

Examples: Query: “Who advised S&P Global during their purchase of Kensho?” Function 1: get_mergers_from_identifiers(identifiers=[“S&P Global”]) # Function 1 returns all M&A’s that involved S&P Global. Extract the <key_dev_id> from the response where S&P Global was the buyer and Kensho was the target. Function 2: get_advisors_for_company_in_transaction(identifier=”S&P Global”, transaction_id=<key_dev_id>)

Query: “Which firms advised AAPL in transaction 67890?” Function: get_advisors_for_company_in_transaction(identifier=”AAPL”, transaction_id=67890)

param identifier:

The identifier, which can be a ticker symbol, ISIN, CUSIP, or company_id

type identifier:

str

param transaction_id:

The ID of the merger.

type transaction_id:

int

rtype:

GetAdvisorsForCompanyInTransactionFromIdentifierResp

get_merger_info_from_transaction_id(transaction_id: int) MergerInfo[source]

Provides comprehensive information about a specific merger or acquisition transaction, including its timeline (announced date, closed date), participants’ company_name and company_id (target, buyers, sellers), and financial consideration details (including monetary values).

Use this tool for questions about announcement dates and transaction details.

Examples: Query: “When was the acquisition of Ben & Jerry’s announced?” Function 1: get_mergers_from_identifiers(identifiers=[“Ben & Jerry’s”]) # Function 1 returns all M&A’s that involved Ben & Jerry’s. Extract the <key_dev_id> from the response where Ben & Jerry’s was the target. Function 2: get_merger_info_from_transaction_id(transaction_id=<key_dev_id>)

Query: “What was the transaction size of Vodafone’s acquisition of Mannesmann?” Function 1: get_mergers_from_identifiers(identifiers=[“Vodafone”]) # Function 1 returns all M&A’s that involved Vodafone. Extract the <key_dev_id> from the response where Vodafone was the buyer and Mannesmann was the target. Function 2: get_merger_info_from_transaction_id(transaction_id=<key_dev_id>)

param transaction_id:

The ID of the transaction.

type transaction_id:

int

rtype:

MergerInfo

get_mergers_from_identifiers(identifiers: list[str]) GetMergersFromIdentifiersResp[source]

Retrieves all merger and acquisition transactions involving the specified company.

Results are categorized by the company’s role: target (being acquired), buyer (making the acquisition), or seller (divesting an asset).

  • When possible, pass multiple identifiers in a single call rather than making multiple calls.

  • Provides transaction_id, merger_title, and transaction closed_date.

Examples: Query: “Which companies did Microsoft purchase?” Function: get_mergers_from_identifiers(identifiers=[“Microsoft”])

Query: “Get acquisitions for AAPL and GOOGL” Function: get_mergers_from_identifiers(identifiers=[“AAPL”, “GOOGL”])

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetMergersFromIdentifiersResp

get_rounds_of_funding_from_identifiers(identifiers: list[str], role: RoundsOfFundingRole, start_date: date | None = None, end_date: date | None = None, limit: int | None = None, sort_order: Literal['asc', 'desc'] = 'desc') GetRoundsOfFundingFromIdentifiersResp[source]

Returns funding round overviews: transaction_ids, types, dates, basic notes. Use for funding/capital raising questions (NOT M&A).

⚠️ TWO-STEP REQUIREMENT: Most questions need BOTH tools: 1. Call THIS → get transaction_ids 2. Call get_rounds_of_funding_info_from_transaction_ids with those IDs 3. Answer using data from BOTH

STEP 2 MANDATORY for: pricing trends (up/down-rounds), exact valuations, security details (preferred shares, classes, participation caps), advisors, board seats, liquidation terms, use of proceeds, pre-deal context, investor contribution amounts, transaction specifics (upsizing, textual notes), fees.

⚠️ Don’t rely on funding_round_notes alone—it’s unstructured/incomplete. Always call STEP 2 for detailed questions.

ROLE PARAMETER: • ‘company_raising_funds’: Company receiving funds (e.g., “What rounds did Stripe raise?”) • ‘company_investing_in_round_of_funding’: Investor’s perspective (e.g., “Which companies did Sequoia invest in?”)

⚠️ INVESTOR QUESTIONS: “How much did [INVESTOR] contribute to [COMPANY]’s round?” → Use INVESTOR’s identifier with role=company_investing_in_round_of_funding Example: “How much did Blackbird VC contribute to Morse Micro’s Series C?” → identifier=Blackbird VC, role=company_investing_in_round_of_funding

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param role:

The role of the company involved in the round of funding

type role:

RoundsOfFundingRole

param start_date:

Filter rounds to those closed on or after this date (YYYY-MM-DD format)

type start_date:

Union[date, NoneType]

param end_date:

Filter rounds to those closed on or before this date (YYYY-MM-DD format)

type end_date:

Union[date, NoneType]

param limit:

Limit to top N funding rounds by sort order

type limit:

Union[int, NoneType]

param sort_order:

Sort order for funding rounds by closed_date. ‘desc’ shows most recent first, ‘asc’ shows oldest first

type sort_order:

Literal[‘asc’, ‘desc’]

rtype:

GetRoundsOfFundingFromIdentifiersResp

get_rounds_of_funding_info_from_transaction_ids(transaction_ids: list[int]) GetRoundsOfFundingInfoFromTransactionIdsResp[source]

Returns DETAILED transaction data. STEP 2 of the two-step workflow—call after get_rounds_of_funding_from_identifiers.

Pass transaction_ids from STEP 1. Default: pass ALL IDs (efficient), then filter results. Only pass specific IDs if question names exact rounds (e.g., “Series A”).

Provides: advisors (legal, financial), board seats, governance rights, liquidation preferences/multiples, security terms (anti-dilution, participation caps, redemption), exact valuations (pre/post-money), use of proceeds, investor contribution amounts, transaction specifics (upsizing, textual notes), fees.

MANDATORY for questions about: pricing trends (up/down-rounds), security details (preferred shares, classes), advisors, board seats, liquidation terms, exact valuations, use of proceeds, pre-deal context, investor contributions, transaction details (upsizing, notes), fees.

Examples requiring this: • “What is the funding price trend for X—up or down-rounds?” • “Did X issue participating preferred shares with a cap?” • “How much did [investor] contribute to [company]’s Series C?” • “What was the post-money valuation for X’s Series E?” • “Did X outline pre-deal operating context?”

param transaction_ids:

List of transaction IDs for rounds of funding.

type transaction_ids:

list[int]

rtype:

GetRoundsOfFundingInfoFromTransactionIdsResp

get_funding_summary_from_identifiers(identifiers: list[str]) GetFundingSummaryFromIdentifiersResp[source]

Returns aggregate funding statistics: total_capital_raised, total_rounds count, first/most recent funding dates, rounds_by_type breakdown. No individual round details.

⚠️ Use for SIMPLE aggregates only (single summary numbers). For “CUMULATIVE” or “ACROSS ALL ROUNDS” questions, use get_rounds_of_funding_from_identifiers instead—those need individual rounds for verification/filtering.

Use THIS for: • “How much TOTAL capital has X raised?” (if you don’t need to verify individual rounds) • “How many rounds did X complete?” • “When was X’s first/most recent funding?”

DON’T use for: • “What is the cumulative amount raised by X across all disclosed rounds?” → Use get_rounds_of_funding_from_identifiers • “Show me X’s funding history” → Use get_rounds_of_funding_from_identifiers • Any specific round questions → Use get_rounds_of_funding_from_identifiers

⚠️ If returns 0 rounds or null data, MUST follow up with get_rounds_of_funding_from_identifiers (summary often incomplete).

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

rtype:

GetFundingSummaryFromIdentifiersResp

get_consensus_estimates_from_identifiers(identifiers: list[str], period_type: EstimatePeriodType | None = None, fiscal_start_year: int | None = None, fiscal_end_year: int | None = None, fiscal_start_quarter: Literal[1, 2, 3, 4] | None = None, fiscal_end_quarter: Literal[1, 2, 3, 4] | None = None, num_periods_forward: int | None = None, num_periods_backward: int | None = None) GetEstimatesFromIdentifiersResp[source]

Get consensus analyst estimates (EPS, Revenue, EBITDA, etc.) for a given identifier.

Returns statistical aggregates including high, low, mean, median, and number of estimates. When periods have ended, actual reported values are also returned.

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param period_type:

The period type (annual, semi-annual, or quarterly).

type period_type:

Union[EstimatePeriodType, NoneType]

param fiscal_start_year:

The starting year for the data range. Use null for the most recent data.

type fiscal_start_year:

Union[int, NoneType]

param fiscal_end_year:

The ending year for the data range. Use null for the most recent data.

type fiscal_end_year:

Union[int, NoneType]

param fiscal_start_quarter:

Starting quarter (1-4). Used when period_type is semi-annual or quarterly.

type fiscal_start_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param fiscal_end_quarter:

Ending quarter (1-4). Used when period_type is semi-annual or quarterly.

type fiscal_end_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param num_periods_forward:

The number of periods forward from today (1-99).

type num_periods_forward:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods in the future to retrieve estimate data.’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

param num_periods_backward:

The number of periods to look back from today (1-99).

type num_periods_backward:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods in the past to retrieve estimate data.’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

rtype:

GetEstimatesFromIdentifiersResp

get_guidance_from_identifiers(identifiers: list[str], period_type: EstimatePeriodType | None = None, fiscal_start_year: int | None = None, fiscal_end_year: int | None = None, fiscal_start_quarter: Literal[1, 2, 3, 4] | None = None, fiscal_end_quarter: Literal[1, 2, 3, 4] | None = None, num_periods_forward: int | None = None, num_periods_backward: int | None = None) GetEstimatesFromIdentifiersResp[source]

Get company-issued financial guidance for a given identifier.

Returns the most recent guidance provided by the company for future periods, or the final guidance issued before results were reported for past periods.

param identifiers:

The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

type identifiers:

list[str]

param period_type:

The period type (annual, semi-annual, or quarterly).

type period_type:

Union[EstimatePeriodType, NoneType]

param fiscal_start_year:

The starting year for the data range. Use null for the most recent data.

type fiscal_start_year:

Union[int, NoneType]

param fiscal_end_year:

The ending year for the data range. Use null for the most recent data.

type fiscal_end_year:

Union[int, NoneType]

param fiscal_start_quarter:

Starting quarter (1-4). Used when period_type is semi-annual or quarterly.

type fiscal_start_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param fiscal_end_quarter:

Ending quarter (1-4). Used when period_type is semi-annual or quarterly.

type fiscal_end_quarter:

Union[Annotated[Literal[1, 2, 3, 4], BeforeValidator], NoneType]

param num_periods_forward:

The number of periods forward from today (1-99).

type num_periods_forward:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods in the future to retrieve estimate data.’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

param num_periods_backward:

The number of periods to look back from today (1-99).

type num_periods_backward:

Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, description=’The number of periods in the past to retrieve estimate data.’, metadata=[Ge(ge=0), Le(le=99)])], NoneType]

rtype:

GetEstimatesFromIdentifiersResp

get_consensus_target_price_from_identifiers(identifiers: list[str]) GetConsensusTargetPriceFromIdentifiersResp[source]

Get consensus target price estimates for a given company. Returns the current consensus analyst target price including high, low, mean, and median values.

Parameters:

identifiers (list[str]) – The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

Return type:

GetConsensusTargetPriceFromIdentifiersResp

get_analyst_recommendations_from_identifiers(identifiers: list[str]) GetAnalystRecommendationsFromIdentifiersResp[source]

Get analyst recommendations for a given company. Returns the current consensus analyst recommendation breakdown including buy, hold, sell counts and overall rating.

Parameters:

identifiers (list[str]) – The identifiers, which can be a list of ticker symbols, ISINs, or CUSIPs, or company_ids

Return type:

GetAnalystRecommendationsFromIdentifiersResp