As-reported XBRL facts

The normalized statements carry a fixed set of metrics, mapped and validated so they compare across companies. A filer tags far more than that. These endpoints return what the filer tagged, exactly as filed: every concept, the filer's own extension concepts, and every value broken out by segment, product, geography or any other axis.

Two ways in

  • By company, across every filing: every concept in the us-gaap, ifrs-full, dei, srt and invest taxonomies, consolidated values only. Use it to follow one concept over time.
  • By filing: every numeric fact in one filing, including the filer's extension concepts and every breakdown. Use it for segments, products, geographies and anything the filer defined for itself.

Find a concept

curl -X GET "https://api.arche.fi/v1/edgar/companies/AAPL/facts/concepts?search=ResearchAndDevelopment" \
  -H "X-Api-Key: $ARCHE_API_KEY" \
  -H "X-Request-ID: $(uuidgen)" \
  -H "Accept: application/json"

Representative response:

{
  "page": 1,
  "page_size": 50,
  "total": 1,
  "items": [
    {
      "concept": "us-gaap:ResearchAndDevelopmentExpense",
      "taxonomy": "us-gaap",
      "label": "Research and Development Expense",
      "description": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge ...",
      "units": ["USD"],
      "fact_count": 234,
      "first_period_end": "2007-09-29",
      "last_period_end": "2026-06-27"
    }
  ]
}

Without search, the listing returns every concept the company has reported (505 for Apple). Narrow by taxonomy to see only dei or ifrs-full.

Read its values

curl -X GET "https://api.arche.fi/v1/edgar/companies/AAPL/facts?concepts=us-gaap:ResearchAndDevelopmentExpense&filing_types=10-K" \
  -H "X-Api-Key: $ARCHE_API_KEY" \
  -H "X-Request-ID: $(uuidgen)" \
  -H "Accept: application/json"
{
  "concept": "us-gaap:ResearchAndDevelopmentExpense",
  "unit": "USD",
  "value": "34550000000",
  "period_start": "2024-09-29",
  "period_end": "2025-09-27",
  "accession_id": "0000320193-25-000079",
  "filing_type": "10-K",
  "filing_date": "2025-10-31",
  "fiscal_year": 2025,
  "fiscal_period": "FY",
  "frame": "CY2025"
}
  • Name
    value
    Type
    string
    Description

    The value exactly as reported, as a decimal string.

  • Name
    fiscal_year
    Type
    integer
    Description

    The fiscal year of the filing that reported the value, not of the value itself. A 10-K also reports the two prior years as comparatives, so read the period from period_start and period_end.

  • Name
    frame
    Type
    string
    Description

    Set when SEC chose this value to represent a calendar period, such as CY2025, CY2025Q4, or CY2025Q4I for a point in time. A value a later filing reported again appears once per filing; keep only framed values to get one value per concept, unit and period.

Narrow by concepts (repeatable; a bare name like Revenues matches any taxonomy), units, filing_types and period_end_from / period_end_to. as_of returns only values filed on or before a date, so a backtest sees what was public then.

Everything in one filing

Take an accession_id from the filing list and read the filing whole:

curl -X GET "https://api.arche.fi/v1/edgar/companies/AAPL/filings/0000320193-25-000079/facts?axes=srt:ProductOrServiceAxis" \
  -H "X-Api-Key: $ARCHE_API_KEY" \
  -H "X-Request-ID: $(uuidgen)" \
  -H "Accept: application/json"
{
  "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
  "unit": "USD",
  "value": "209586000000",
  "decimals": -6,
  "period_start": "2024-09-29",
  "period_end": "2025-09-27",
  "dimensions": [
    { "axis": "srt:ProductOrServiceAxis", "member": "aapl:IPhoneMember" }
  ]
}

dimensions lists the axes and members a value is broken out by, and is empty for the consolidated company. Apple's FY2025 10-K carries 880 numeric facts: 407 are breakdowns, by product, by country, by segment and more, and 70 use Apple's own aapl: concepts.

Filter with axes, taxonomies (a concept prefix: aapl keeps only Apple's extension concepts) and dimensioned (false for consolidated values only).

As filed, not normalized

These values are the filer's tags. They are not mapped, validated or adjusted, and they do not feed the normalized statements. Segment names, extension concepts and even the choice of standard concept differ from company to company, so compare across companies with the normalized statements, and use these endpoints for everything the normalized metrics leave out.

Was this page helpful?