api_docs
ChatGPTGet Fiscal.ai API documentation with TypeScript types for all available functions.
Access institutional-grade financial data directly within Claude. Fiscal.ai delivers fundamental metrics and ratios minutes after earnings are reported, with every figure verifiable via direct links to the source filing. Beyond core financials, the server provides company-specific KPIs, revenue segments, and adjusted metrics. Combined with historical and current market quotes, it enables grounded, audit-ready equity research with unmatched speed.
async () => { ... } API functions are available as codemode.<name>({...}). Use console.log() to return data — this is the only output channel. Chain multiple calls in one invocation for efficiency. declare const codemode: { /* Get all available companies with their exchange, ticker, and basic info. / companies_list: (input: { /* Page number (1-indexed). Defaults to 1. / pageNumber?: number; /* Items per page (max 1000). Defaults to 1000. / pageSize?: number }) => Promise<{ pagination: { /* Current page number / page: number; /* Number of items per page / pageSize: number; /* Total number of companies / totalCount: number; /* Total number of pages / totalPages: number; /* Whether there is a next page / hasNextPage: boolean; /* Whether there is a previous page / hasPreviousPage: boolean }; data: Array<{ name: string; ticker: string; exchangeName: string; micCode?: string; exchangeSymbol: string; /* Active/Inactive / tradingStatus: string; /* True if the company is not yet publicly trading (pre-IPO). When true, tradingStatus will be 'Inactive'. / isPreIpo: boolean; countryName: string; countryCode: string; tradingCurrency?: string; reportingCurrency: string; sector: string; industryGroup: string; industry: string; subIndustry: string; reportingTemplate: string; availableDatasets: Array<"financials" | "segments_and_kpis" | "stock_prices" | "adjusted_numbers">; /* SEC Central Index Key (if available) / cik?: string; /* CUSIP identifier, requires CUSIP/ISIN license / cusip?: string; /* ISIN identifier, requires CUSIP/ISIN license / isin?: string; /* FIGI (Financial Instrument Global Identifier) / figi?: string; /* The latest earnings filing date, formatted as YYYY-MM-DDTHH:mm:ss[Z]. / earningsFilingDate?: string; /* The last time this company was updated, in Unix timestamp. / updatedAt?: number }> }>; /* Get detailed company profile including sector, industry, exchange, market cap, and key identifiers. FISCAL TERMINAL LINK: The response includes `terminalUrl` (e.g. `https://fiscal.ai/company/NasdaqGS-AAPL`) and `fiscalIdentifier`. Use `terminalUrl` whenever the user asks for a Fiscal.ai company link, a 'view in Fiscal' link, or wants company-level links in a spreadsheet/table/artifact. ⚠️ NEVER construct `fiscal.ai/company/<id>` URLs by hand. The Nasdaq tier (GS / GM / CM) is NOT derivable from the Atlas company key (all three are `NASDAQ` in Atlas). Guessing produces broken links. Always call this tool to retrieve `terminalUrl`. / company_profile: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<{ name: string; ticker: string; exchangeName: string; micCode?: string; exchangeSymbol: string; /* Active/Inactive / tradingStatus: string; /* True if the company is not yet publicly trading (pre-IPO). When true, tradingStatus will be 'Inactive'. / isPreIpo: boolean; countryName: string; countryCode: string; tradingCurrency?: string; reportingCurrency: string; sector: string; industryGroup: string; industry: string; subIndustry: string; reportingTemplate: string; availableDatasets: Array<"financials" | "segments_and_kpis" | "stock_prices" | "adjusted_numbers">; /* SEC Central Index Key (if available) / cik?: string; /* CUSIP identifier, requires CUSIP/ISIN license / cusip?: string; /* ISIN identifier, requires CUSIP/ISIN license / isin?: string; /* FIGI (Financial Instrument Global Identifier) / figi?: string; /* The latest earnings filing date, formatted as YYYY-MM-DDTHH:mm:ss[Z]. / earningsFilingDate?: string; /* The last time this company was updated, in Unix timestamp. / updatedAt?: number; /* Constellation Software Inc. acquires, manages, and builds vertical market software businesses. / description?: string; /* Constellation Software Inc. is a Canadian company that acquires, manages, and builds vertical market software (VMS) businesses. The company operates globally, serving a diverse range of public and private sector customers. Its strategy involves identifying and acquiring small to medium-sized VMS companies with strong market positions and then providing them with the resources and expertise to grow. Constellation Software operates through a decentralized model, allowing its acquired businesses to maintain their unique identities and operational autonomy while benefiting from the parent company's financial strength and best practices. The company's portfolio spans numerous industries, including healthcare, education, public safety, finance, and various industrial sectors, providing mission-critical software solutions. Constellation Software is known for its disciplined acquisition strategy and long-term investment horizon, focusing on generating consistent free cash flow. / shortDescription?: string }>; /* Get company news. Defaults to the latest 14 UTC dates; provide both startDate and endDate for a custom inclusive range up to 31 days. eventType and importance are independent optional filters: use neither, either one, or both. When both are provided, articles must match both filters. / company_news: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Inclusive UTC start date in YYYY-MM-DD format. Must be supplied together with endDate. / startDate?: string; /* Inclusive UTC end date in YYYY-MM-DD format. Must be supplied together with startDate. / endDate?: string; /* Optional filter to a single normalized event type. Values: earnings = quarterly or annual results; guidance = outlook or forecasts; dividend = dividend declarations or changes; stock_split = split events; buyback = share repurchase programs; ma = mergers, acquisitions, or divestitures involving ownership/control of a company or business; partnership = strategic partnerships, joint ventures, commercial agreements, purchase agreements, customer orders, or supply agreements; product_launch = new products or services; expansion = new markets or facilities; regulatory = approvals, compliance actions, or fines; legal = lawsuits, settlements, or legal proceedings; executive = C-suite or board changes; restructuring = layoffs, reorganizations, or cost-cutting; financing = debt, equity, or credit facilities; technology = R&D, patents, or technology developments; esg = ESG or sustainability; analyst = analyst rating or price-target actions; market_commentary = substantive market or industry analysis; other = company-specific news not fitting another category. / eventType?: "earnings" | "guidance" | "dividend" | "stock_split" | "buyback" | "ma" | "partnership" | "product_launch" | "expansion" | "regulatory" | "legal" | "executive" | "restructuring" | "financing" | "technology" | "esg" | "analyst" | "market_commentary" | "other"; /* Optional filter to a single exact importance score. Scores: 1 = Major Event; 2 = Measurable Impact; 3 = Notable Update; 4 = Minor Mention; 5 = Routine Event. Importance reflects the impact of the news item. Some event types are naturally more likely to be important, but each item is scored based on its specific substance. / importance?: number }) => Promise<Array<{ /* UTC date of the stored news file. / date: string; title: string; description: string; summary: string; /* News event category. / eventType: string; /* Relative importance score. Scores run from 1 to 5: 1 = Major Event, 2 = Measurable Impact, 3 = Notable Update, 4 = Minor Mention, 5 = Routine Event. / importance: number; sourceUrl: string; /* UTC timestamp when the article was collected. / collectedAt: string }>>; /* Cross-company news search across all companies (or one company via companyKey). The default returns importance 1 (Major Event) and 2 (Measurable Impact) articles only — the actual 'top news' tier. To include lower-importance levels, pass an explicit range (e.g. minImportance=1&maxImportance=5 for everything). Common queries: default top news (no params), all earnings in the top tier (eventType=earnings), every importance level (minImportance=1&maxImportance=5), only the most important (importance=1), one specific day (startDate=2026-05-19&endDate=2026-05-19), or one company (companyKey=NASDAQ_AAPL). Use importance for an exact level OR minImportance/maxImportance for a range (mutually exclusive). Defaults to the last 7 UTC days; supply both startDate and endDate for a custom inclusive range up to 7 days. Results sort by importance ASC then collection time DESC, deduped by content, and are paginated (default pageSize=250, max 1000). / top_news: (input: { /* Optional. When provided, returns top news for this company only. Must be canonical EXCHANGE_TICKER form (e.g. NASDAQ_AAPL). CUSIP/ISIN/etc. are not supported — use company_news for those. / companyKey?: string; /* Optional inclusive UTC start date in YYYY-MM-DD format. If supplied, endDate must also be supplied. If both are omitted, returns the latest 7 UTC days. / startDate?: string; /* Optional inclusive UTC end date in YYYY-MM-DD format. If supplied, startDate must also be supplied. Range cannot exceed 7 days. If both are omitted, returns the latest 7 UTC days. / endDate?: string; /* Optional. One or more event types, comma-separated. Defaults to all event types when omitted. Optional filter to a single normalized event type. Values: earnings = quarterly or annual results; guidance = outlook or forecasts; dividend = dividend declarations or changes; stock_split = split events; buyback = share repurchase programs; ma = mergers, acquisitions, or divestitures involving ownership/control of a company or business; partnership = strategic partnerships, joint ventures, commercial agreements, purchase agreements, customer orders, or supply agreements; product_launch = new products or services; expansion = new markets or facilities; regulatory = approvals, compliance actions, or fines; legal = lawsuits, settlements, or legal proceedings; executive = C-suite or board changes; restructuring = layoffs, reorganizations, or cost-cutting; financing = debt, equity, or credit facilities; technology = R&D, patents, or technology developments; esg = ESG or sustainability; analyst = analyst rating or price-target actions; market_commentary = substantive market or industry analysis; other = company-specific news not fitting another category. / eventType?: string; /* Optional. Optional filter to a single exact importance score. Scores: 1 = Major Event; 2 = Measurable Impact; 3 = Notable Update; 4 = Minor Mention; 5 = Routine Event. Importance reflects the impact of the news item. Some event types are naturally more likely to be important, but each item is scored based on its specific substance. / importance?: number; /* Optional. Inclusive lower bound on importance (1-5). When used (with or without maxImportance), enters range mode and defaults the missing bound to 1. Mutually exclusive with importance. NOTE: when neither minImportance nor maxImportance is supplied, the endpoint defaults to importance 1 and 2 only — pass minImportance=1&maxImportance=5 to include every level. / minImportance?: number; /* Optional. Inclusive upper bound on importance (1-5). When used (with or without minImportance), enters range mode and defaults the missing bound to 5. Mutually exclusive with importance. NOTE: when neither minImportance nor maxImportance is supplied, the endpoint defaults to importance 1 and 2 only — pass minImportance=1&maxImportance=5 to include every level. / maxImportance?: number; /* Optional. Page number (1-indexed). Defaults to 1. / pageNumber?: number; /* Optional. Number of articles per page. Defaults to 250, max 1000. / pageSize?: number }) => Promise<{ pagination: { /* Current page number (1-indexed). / page: number; /* Number of items per page. / pageSize: number; /* Total number of deduped articles matching the filters. / totalCount: number; /* Total number of pages. / totalPages: number; /* Whether there is a next page. / hasNextPage: boolean; /* Whether there is a previous page. / hasPreviousPage: boolean }; data: Array<{ /* EXCHANGE_TICKER for the article's company. / companyKey: string; /* UTC date of the stored news file. / date: string; title: string; description: string; summary: string; /* News event category. / eventType: string; /* Relative importance score. Scores run from 1 to 5: 1 = Major Event, 2 = Measurable Impact, 3 = Notable Update, 4 = Minor Mention, 5 = Routine Event. / importance: number; sourceUrl: string; /* UTC timestamp when the article was collected. / collectedAt: string }> }>; /* Get earnings data summary for a company including EPS, revenue estimates, and actuals. / company_earnings_summary: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<Array<{ symbol: string; date: string; period: string; epsActual?: number; revenueActual?: number }>>; / Get financial data as originally reported in SEC filings. Response has { metrics, data } structure where data[].reportDate is the period date. SOURCE CITATIONS: Each metric value in metricsValues includes a `sources` array with: - `auditUrl`: user-clickable link to the Fiscal.ai terminal, opens the filing PDF at the exact page with UI. This is the preferred link for any 'view source' / click-through.* No auth needed. - `originalSourceUrl`: direct link to the SEC/regulatory filing (fallback if `auditUrl` is missing). - `pageNumber`: 1-based page number in the filing. - `document`, `image`: internal API URLs requiring an API key — DO NOT use in artifacts, links, or anywhere the user would click them. They will fail with 'Missing api key'. For artifacts, tables, and citations: render every source as a link to `auditUrl`. Do not embed page images. / company_financials_as_reported: (input: { statementType: "income-statement" | "balance-sheet" | "cash-flow-statement"; /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Period types (comma-separated): annual, quarterly, ltm, semi-annual, ytd / periodType?: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<{ metrics: Array<{ asReportedMetricId: string; metricName: string; headers: Array<string>; metricFormat: string; isPointInTime: boolean; isCurrency: boolean; isPerShare: boolean; isKeyMetric: boolean }>; data: Array<{ periodId: string; periodType: "Annual" | "Quarterly" | "Semi-Annual" | "LTM" | "YTD"; reportDate: string; periodDuration: string; calendarYear: number; calendarQuarter: number; fiscalYear?: number; fiscalQuarter?: number; /* Whether this is a stub/transition period / isStubPeriod?: boolean; /* Stub type: fye (fiscal year-end change) or inception (first reporting period) / stubType?: "fye" | "inception"; /* Actual duration of the stub period in days / stubDuration?: number; earningsDate?: string; earningsTimeOfDay?: string; lastSourceFilingDate?: string; lastSourceFilingTimeOfDay?: string; /* Whether this period contains restated data (data differs from original filing) / isRestated?: boolean; metricsValues: { "1_IS_65961": { value: number; unit: string; currency: string; /* Whether the value is calculated from other periods. / isCalculated: boolean; /* Original value before currency conversion / originalValue?: number; /* Currency the value is reported in / originalCurrency?: string; /* Exchange rate applied for conversion / appliedExchangeRate?: number; sources: Array<{ document: string; image?: string; pageNumber?: number; /* The source to the original document, for now supports SEC only. / originalSourceUrl?: string }> } } }> }>; /* Get available standardized financial metrics for a template and statement type. / standardized_metrics_list: (input: { templateType: "standard" | "capital-markets" | "financials" | "insurance" | "real-estate" | "utilities"; statementType: "income-statement" | "balance-sheet" | "cash-flow-statement" }) => Promise<{ reportingTemplate: "Standard" | "Capital Markets" | "Financials" | "Insurance" | "Utilities" | "Real Estate"; metrics: Array<{ standardizedMetricId: string; metricName: string; metricFormat: string; isPointInTime: boolean; isCurrency: boolean; isTotal: boolean; headers: Array<string>; definition: string; subComponents: Array<{ uid: number; metricId: string; metricName: string; operation: string }> }> }>; /* Get all available standardized financial metrics across all templates and statement types. / all_standardized_metrics_list: (input: {}) => Promise<{ metrics: Array<{ standardizedMetricId: string; metricName: string; metricFormat: string; statementType: string; isPointInTime: boolean; isCurrency: boolean; headers: Array<string>; reportingTemplates: Array<string> }> }>; / Get standardized financial data mapped to a consistent template for cross-company comparison. SOURCE CITATIONS: Each standardized metric includes `asReportedValues` — the contributing as-reported metrics. Each as-reported value has a `sources` array with: - `auditUrl`: user-clickable link to the Fiscal.ai terminal, opens the filing PDF at the exact page with UI. This is the preferred link for any 'view source' / click-through.* No auth needed. - `originalSourceUrl`: direct link to the SEC/regulatory filing (fallback if `auditUrl` is missing). - `pageNumber`: 1-based page number in the filing. - `document`, `image`: internal API URLs requiring an API key — DO NOT use in artifacts, links, or anywhere the user would click them. For artifacts, tables, and citations: render every source as a link to `auditUrl`. Do not embed page images. / company_financials_standardized: (input: { statementType: "income-statement" | "balance-sheet" | "cash-flow-statement"; /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Period types (comma-separated): annual, quarterly, ltm, semi-annual, ytd / periodType?: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<{ reportingTemplate: string; metrics: Array<{ standardizedMetricId: string; metricName: string; metricFormat: string; isPointInTime: boolean; isCurrency: boolean; isTotal: boolean; headers: Array<string>; reportingTemplates?: Array<string>; asReportedMetrics: Array<{ asReportedMetricId: string; metricName: string; headers: Array<string>; metricFormat: string; isPointInTime: boolean; isCurrency: boolean; isPerShare: boolean; isKeyMetric: boolean; operation: string }> }>; data: Array<{ periodId: string; periodType: "Annual" | "Quarterly" | "Semi-Annual" | "LTM" | "YTD"; reportDate: string; periodDuration: string; calendarYear: number; calendarQuarter: number; fiscalYear?: number; fiscalQuarter?: number; /* Whether this is a stub/transition period / isStubPeriod?: boolean; /* Stub type: fye (fiscal year-end change) or inception (first reporting period) / stubType?: "fye" | "inception"; /* Actual duration of the stub period in days / stubDuration?: number; earningsDate?: string; earningsTimeOfDay?: string; lastSourceFilingDate?: string; lastSourceFilingTimeOfDay?: string; /* Whether this period contains restated data (data differs from original filing) / isRestated?: boolean; metricsValues: { income_statement_total_revenues: { value: number; /* Unit of measurement (inherited from first as-reported value) / unit?: string; /* Currency of the standardized metric value (target currency after conversion) / currency?: string; /* Original standardized value before currency conversion (computed by applying operations to as-reported originalValues). For EPS/WASO on ADR companies, this is the ordinary share value in the original currency. / originalValue?: number; /* Original currency before conversion (typically the company's reporting currency) / originalCurrency?: string; /* Exchange rate applied for conversion (standardized value / original standardized value) / appliedExchangeRate?: number; /* Ordinary share conversion. Only present for EPS/WASO (income_statement_basic_eps, income_statement_diluted_eps, income_statement_basic_weighted_average_shares_outstanding, and income_statement_diluted_weighted_average_shares_outstanding) on ADR companies with conversion factor ≠ 1. The main 'value' is the ADS value (matches stock price). Use ordinaryShareConversion.value for per-ordinary-share figures. / ordinaryShareConversion?: { /* EPS/WASO value in ordinary share terms and in target currency / value: number; /* Ordinary share value in ordinary share terms and in original currency (before FX conversion) / originalValue?: number; /* Ratio of 1 ADS to ordinary shares (e.g., 5 means 1 ADS = 5 ordinary shares). For EPS: ADS = ordinary factor. For WASO: ADS = ordinary / factor. / conversionFactor: number }; asReportedValues: Array<{ asReportedMetricId: string; metricName: string; headers: Array<string>; operation: string; value: number; unit: string; currency: string; / Original value before currency conversion / originalValue?: number; /* Original currency before conversion / originalCurrency?: string; /* Exchange rate applied for conversion / appliedExchangeRate?: number; sources: Array<{ document: string; image?: string; pageNumber?: number }> }> } } }> }>; /* Get all available financial ratios and their definitions. / ratios_list: (input: {}) => Promise<Array<{ ratioId: string; metricName: string; category: string; isCurrency: boolean; metricFormat: string; hasDailyData: boolean; formulaHuman?: string }>>; /* Get calculated financial ratios (P/E, EV/EBITDA, ROE, etc.) for a company. / company_ratios: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Comma separated: annual,quarterly,latest / periodType?: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<{ metrics: Array<{ ratioId: string; metricName: string; category: string; isCurrency: boolean; metricFormat: string; hasDailyData: boolean }>; data: Array<{ periodId: string; periodType: "Annual" | "Quarterly" | "Semi-Annual" | "LTM" | "YTD"; reportDate: string; periodDuration: string; calendarYear: number; calendarQuarter: number; fiscalYear?: number; fiscalQuarter?: number; /* Whether this is a stub/transition period / isStubPeriod?: boolean; /* Stub type: fye (fiscal year-end change) or inception (first reporting period) / stubType?: "fye" | "inception"; /* Actual duration of the stub period in days / stubDuration?: number; metricValues: { market_data_share_price: number; market_data_total_shares_outstanding: number; calculated_market_cap: number; ratio_price_to_sales: number; ratio_price_to_earnings: number }; /* Trading currency applies to market cap, enterprise value, and price. If the trading currency differs from the company's reporting currency or the currency parameter, market cap and enterprise value will be converted to that currency. / tradingCurrency: { /* Defaults to the company's reporting currency unless overridden by the currency parameter. Price remains in trading currency. / currency: string; /* Currency before conversion. / originalCurrency: string; /* Exchange rate applied (CAD to USD) for market cap and enterprise value. / appliedExchangeRate: number }; /* Reporting currency applies to financials. If the reporting currency differs from the company's reporting currency or the currency parameter, financials will be converted to that currency. / reportingCurrency: { /* Defaults to the company's reporting currency unless overridden by the currency parameter. Financials are converted to this currency. / currency: string; /* Currency before conversion. / originalCurrency: string; /* Exchange rate applied (CAD to USD) for financials. / appliedExchangeRate: number } }> }>; /* Get daily time-series data for a specific financial ratio, useful for charting trends. / company_daily_ratios: (input: { /* The ratio identifier / ratioId: string; /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<Array<{ date: string; ratio: number }>>; /* Get historical shares outstanding data. / company_shares_outstanding: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<Array<{ date: string; totalSharesOutstanding: number; /* Total shares in ordinary-share terms. Only present for ADR companies with a conversion factor. / ordinaryTotalSharesOutstanding?: number; shareClasses: Array<{ shareClass: string; isMainShareClass: boolean; sharesOutstanding: number; conversionRate?: number; /* Only present for ADR companies with a conversion factor. The main sharesOutstanding is in ADS terms; use ordinaryShareConversion.ordinarySharesOutstanding for ordinary-share figures. / ordinaryShareConversion?: { /* Ratio of 1 ADS to ordinary shares (e.g., 8 means 1 ADS = 8 ordinary shares). / conversionFactor: number; /* Share count in ordinary-share terms. / ordinarySharesOutstanding: number }; sourceDocument: string }> }>>; /* Get stock split history with ratios and ex-dates. / company_stock_splits: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<Array<{ announceDate?: string; recordDate?: string; exDate?: string; payDate?: string; splitType: "Stock Split" | "Reverse Stock Split" | "Stock Dividend"; rate: number }>>; /* Get historical daily stock prices in reverse chronological order (most recent first): open, close, and volume per day (split-adjusted). High and low are not available from the API yet. / company_stock_prices: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<Array<{ date: string; open_price: number; close_price: number; volume: number }>>; /* Get business segment breakdown and KPIs using v2 stable KPI identifiers. `metrics[].metricId`, `segmentGroups[].metrics[].metricId`, rollup metric IDs, and `data[].metricsValues` keys all use the same stable numeric KPI IDs. / company_segments_and_kpis: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* annual or quarterly / periodType?: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<{ reportingCurrency: string; currency: string; metrics: Array<{ /* Stable KPI identifier. This is the canonical ID to key off instead of the metric name. / metricId: string; metricName: string; metricType: "Segment" | "KPI"; metricFormat: "number" | "%" | "ratio"; isCurrency: boolean; isImportant: boolean; isDiscontinued: { Annual: boolean; Quarterly: boolean; LTM: boolean; "Semi-Annual": boolean } }>; segmentGroups: Array<{ title: string; metrics: Array<{ metricId: string; metricName: string; isRollup: boolean; rollupMetrics?: Array<{ metricId: string; metricLabel: string; isRollup: boolean }> }> }>; data: Array<{ periodId: string; periodType: string; reportDate: string; periodDuration: string; calendarYear: number; calendarQuarter: number; fiscalYear?: number; fiscalQuarter?: number; metricsValues: Record<string, number> }> }>; /* Get adjusted financial metrics for a company. / company_adjusted_metrics: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string; /* Period types (comma-separated): annual, quarterly, ltm, semi-annual, ytd / periodType?: string; /* Target currency for conversion (e.g. USD, EUR, GBP). Defaults to the company's reporting currency. / currency?: string }) => Promise<{ metrics: Array<{ metricId: string; metricName: string; metricFormat: string; isCurrency: boolean; isPerShare: boolean; isKeyMetric: boolean }>; data: Array<{ periodId: string; periodType: "Annual" | "Quarterly" | "Semi-Annual" | "LTM" | "YTD"; reportDate: string; periodDuration: string; calendarYear: number; calendarQuarter: number; fiscalYear?: number; fiscalQuarter?: number; /* Whether this is a stub/transition period / isStubPeriod?: boolean; /* Stub type: fye (fiscal year-end change) or inception (first reporting period) / stubType?: "fye" | "inception"; /* Actual duration of the stub period in days / stubDuration?: number; earningsDate?: string; earningsTimeOfDay?: string; lastSourceFilingDate?: string; lastSourceFilingTimeOfDay?: string; /* Whether this period contains restated data (data differs from original filing) / isRestated?: boolean; metricValues: { value: number; unit: string; currency: string; adjusted: boolean; /* Original value before currency conversion / originalValue?: number; /* Currency the value is reported in / originalCurrency?: string; /* Exchange rate applied for conversion / appliedExchangeRate?: number; sources: Array<{ document: string; image?: string; pageNumber?: number; /* The source to the original document, for now supports SEC only. / originalSourceUrl?: string }> } }> }>; /* Get filings for a company. Returns annual reports, interim reports, earnings press releases, current reports, and initial registration statements. / company_filings: (input: { /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<Array<{ /* Unique filing identifier / filingId: string; /* Type of document: Annual Report, Annual Report (Amended), Interim Report, Interim Report (Amended), Earnings Press Release, Earnings Press Release (Amended), Initial Registration Statement, Initial Registration Statement (Amended), Current Report, Current Report (Amended) / documentType: "Annual Report" | "Annual Report (Amended)" | "Interim Report" | "Interim Report (Amended)" | "Earnings Press Release" | "Earnings Press Release (Amended)" | "Initial Registration Statement" | "Initial Registration Statement (Amended)" | "Current Report" | "Current Report (Amended)"; /* The SEC form type of the filing / secFormType?: string; /* The SEC exhibit type of the filing (e.g., EX-99.1 for earnings press releases) / secExhibitType?: string; /* The date the filing was filed at / filingDate: string; /* If the report is an Annual Report, Interim Report, or an Earnings Press Release, the company's reporting date. / reportDate?: string; /* If the report is an Annual Report, Interim Report, or an Earnings Press Release, the company's reporting fiscal year. / fiscalYear?: number; /* If the report is an Annual Report, Interim Report, or an Earnings Press Release, the company's reporting fiscal quarter. / fiscalQuarter?: number; /* URL to the PDF of the filing / pdfUrl: string; /* The source to the original document, for now supports SEC only. / sourceUrl?: string }>>; / Get a specific page from a filing as a base64-encoded JPEG image. For click-through / 'view source' UX, do NOT use this tool.* Use the `auditUrl` from the sources array — it's a user-clickable link that opens the filing at the correct page in the Fiscal terminal with proper UI. No tool call, no image embedding, no size issues. Use this tool only when YOU (the LLM) need to read a page's content — e.g. 'summarize what the filing says on page 32' or 'extract the risk factors'. Returns base64 JPEG (~150-250KB). Each image is too large to embed multiple in a single artifact. The `filingId` can be parsed from the `document` URL in sources (segment between `/filing/` and `/pdf`). `pageNumber` is directly on the source object. / filing_page_image: (input: { filingId: string; /* 1-based page number / pageNumber: number; /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<string>; /* Get a complete filing as base64-encoded PDF. / filing_pdf: (input: { filingId: string; /* Company identifier '<EXCHANGE>_<TICKER>', e.g. NASDAQ_MSFT / companyKey: string }) => Promise<string>; };App Stats
4
Tools
5
Prompts
Apr 1, 2026
First seen
ChatGPT, Claude
Platforms
Category
Financial ResearchWorks with
Data refreshed daily