Get XBRL financial facts for a company
edgar_get_company_factsRetrieve reported XBRL financial facts for one SEC company from EDGAR: list available concepts or fetch time-series values filtered by form, fiscal period, or date.
Instructions
Get reported XBRL financial data (us-gaap, ifrs-full, dei, ...) for one company from the SEC companyfacts API, e.g. Assets, Revenues, NetIncomeLoss, EarningsPerShareDiluted. Two modes: (1) omit concepts to LIST the concepts the company reports (name, label, units, number of values) so you can pick exact names; (2) pass concepts to get their time-series values, newest first, optionally filtered by form (10-K/10-Q), fiscal period or date. Use edgar_get_concept_across_companies to compare one concept across many companies. Behavior: free, read-only GET to data.sec.gov (no token). Concept names are case-sensitive. Values are as reported (duplicates across filings possible; set dedupe=true to keep one value per period). RETURNS: paged {count,total,offset,hasMore,nextOffset,meta:{cik,name},items}. List mode items: {taxonomy,concept,label,units,values}. Values mode items: {taxonomy,concept,label,unit,value,start,end,fy,fp,form,filed,accession_number,frame}. Errors: COMPANY_NOT_FOUND, NOT_FOUND (no XBRL data), SEC_FETCH_FAILED. WHEN NOT TO USE: for filing documents/text use edgar_list_filings + edgar_get_filing_document; for one concept across all companies use edgar_get_concept_across_companies. COST: free - direct sec.gov requests from this MCP server, no APIFY_TOKEN, no Apify billing. PARAMETERS: concepts switches the mode: omitted/empty = list mode (only taxonomy and search apply; forms, fiscalPeriod, since and dedupe are ignored), non-empty = values mode (search is ignored). Concept names are case-sensitive and must match exactly as listed (e.g. "NetIncomeLoss", not "netincome"); names the company never reported come back in meta.missing_concepts instead of failing. Many companies report revenue as "RevenueFromContractWithCustomerExcludingAssessedTax" rather than "Revenues", so run list mode with search "revenue" first. taxonomy applies in both modes. In values mode the filters combine with AND: forms matches the form of the filing that reported the value (["10-K"] = annual reports), fiscalPeriod matches fp ("FY" = full year; "Q4" is rarely reported separately), since compares the period end date. dedupe=true keeps one value per concept/unit/start-end period (the latest filed, i.e. restated) - set false to see every filing's figure. Rows are sorted by period end, newest first, then paged with limit/offset. EXAMPLE: {"company":"MSFT","concepts":["Revenues"],"fiscalPeriod":"FY","limit":5} -> 5 newest annual Revenues values in USD.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| forms | No | Optional, values mode only, default all forms. Form types of the reporting filing (case-insensitive), e.g. ["10-K"] for annual or ["10-Q"] for quarterly figures | |
| limit | No | Optional page size: items to return, integer 1-500 (default 50). Example: 10 | |
| since | No | Optional, values mode only. Keep values whose period end date >= this date, format YYYY-MM-DD, e.g. "2021-01-01" | |
| dedupe | No | Optional boolean, values mode only, default true = one value per concept/unit/period (latest filed); false = every reported value incl. repeats from later filings | |
| offset | No | Optional zero-based number of items to skip, integer >= 0 (default 0); pass nextOffset from the previous response, e.g. 20 | |
| search | No | Optional, list mode only. Case-insensitive substring matched against concept name or label. Example: "revenue" | |
| company | Yes | Required, 1-200 chars. Ticker ("AAPL", case-insensitive), CIK of 1-10 digits ("320193" or "0000320193"; any SEC filer, even without a ticker) or registrant-name fragment ("Apple"; the first SEC ticker-map match is used). Call edgar_resolve_company first if a name is ambiguous. | |
| concepts | No | Optional; omit = list mode. 1-25 exact, case-sensitive XBRL concept names = values mode. Example: ["Revenues","NetIncomeLoss","Assets"] | |
| taxonomy | No | Optional, default omitted = all taxonomies. Exact taxonomy key: "us-gaap", "ifrs-full", "dei" or "srt". Example: "us-gaap" | |
| fiscalPeriod | No | Optional, values mode only, one of "FY" | "Q1" | "Q2" | "Q3" | "Q4"; default all periods. Example: "FY" |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Tool-specific context (company, source_url, ...) | |
| count | Yes | Number of items in this page | |
| items | Yes | Result rows for this page | |
| total | Yes | Total items matching the filters (before paging) | |
| offset | Yes | Offset of the first item in this page | |
| hasMore | Yes | True if more items exist after this page | |
| nextOffset | Yes | Offset to pass for the next page, or null |