# 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

```bash
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:

```json
{
  "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

```bash
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"
```

```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"
}
```

- `value` (string): The value exactly as reported, as a decimal string.
- `fiscal_year` (integer): 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`.
- `frame` (string): 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](https://docs.arche.fi/guides/company-resolution-and-statement-retrieval#inspect-filings)
and read the filing whole:

```bash
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"
```

```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).

> **Note:** The first read of a filing fetches it from SEC and can take a few seconds.
> Later reads are immediate.

## 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](https://docs.arche.fi/fundamentals), and use these endpoints for everything
the normalized metrics leave out.

## Next steps

- [Company identity](https://docs.arche.fi/identity): Resolve tickers to full issuer records, search by name, and read mapping validity.
- [Time series](https://docs.arche.fi/time-series): Pull a metric across a whole reporting history, point-in-time or as-reported.
- [Fundamentals](https://docs.arche.fi/fundamentals): Read panels across many companies, name a statement by its identity, and pull the approved macro context.
