> Fiscal.ai API docs. Source: https://docs.fiscal.ai/docs/reference/sourcing. Every page is listed in https://docs.fiscal.ai/llms.txt; append `.md` to any docs URL for its Markdown.

# Sourcing Reference

Trace a financial value to its filing: the PDF, the page, and the box on the page where the number is printed.

## Sourcing Reference

Values the as-reported and standardized financials endpoints return can be traced to the filing they came from. The `sources` on a value name the filing's PDF and the page the value is printed on. With `includeRegions=true`, each source also gives the box on that page where the number is printed, so you can highlight it.

`sources` are returned to API keys with sourcing access. Without it, values come without `sources`, and `includeRegions` has no effect.

## What a source holds

| Field | What it is |
| --- | --- |
| `document` | The filing's PDF, from `GET /v1/filing/{filingId}/pdf`. |
| `pageNumber` | The page of `document` the value is printed on, counting from 1. Null when the page is not known. |
| `image` | A JPEG of that page, from `GET /v1/filing/{filingId}/page/{pageNumber}/image`. Null when the page is not known. |
| `originalSourceUrl` | The filing on the regulator's website. SEC filings only; null for others. |
| `region` | Only with `includeRegions=true`: where the value is printed on page `pageNumber` of `document`, the PDF. See below. |

```json
"sources": [
  {
    "document": "https://api.fiscal.ai/v1/filing/0000320193-26-000026/pdf?ticker=AAPL&exchange=NASDAQ",
    "image": "https://api.fiscal.ai/v1/filing/0000320193-26-000026/page/35/image?ticker=AAPL&exchange=NASDAQ",
    "pageNumber": 35,
    "originalSourceUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/aapl-20260926.htm",
    "region": [0.6041, 0.2338, 0.0333, 0.0103]
  }
]
```

This is Apple's total net sales for fiscal 2026, $478,834 million, on page 35 of its 10-K.

## Which values have sources

- **As-reported:** a value the company filed (`isCalculated: false`) has one source, the filing that reports it. A calculated value (`isCalculated: true`), such as a fourth quarter worked out from the annual and the first nine months, has one source for each filing it is calculated from, with no `region`.
- **Standardized:** a standardized value lists the line items it is built from in `asReportedValues`, and each of those carries its own `sources`, built as on the as-reported endpoint. The same applies to `alternativeAsReportedValues`.

## Drawing a region

`region` is `[x, y, width, height]`. Each number is a fraction from 0 to 1 of the page's width (`x`, `width`) or height (`y`, `height`), measured from the top-left corner of the page.

- The box belongs to page `pageNumber` of `document`, the PDF page as a PDF viewer shows it. Render that page at any size, then multiply: at `W` by `H` pixels the box starts at `x * W`, `y * H` and is `width * W` wide and `height * H` tall.
- Regions are supported on the PDF page only. They do not line up with `image`, so draw them on `document`.
- When a value has a `region`, `pageNumber` is the page the number was found on, so the two always go together.

```js
// page: a PDF page rendered into a canvas of canvasWidth by canvasHeight pixels
const [x, y, width, height] = source.region;
context.strokeRect(x * canvasWidth, y * canvasHeight, width * canvasWidth, height * canvasHeight);
```

## When a value has no region

`region` is left out, rather than set to null, when the value could not be located on its page, and on the sources of calculated values. Most filed values have one. Treat a source without `region` as pointing at the whole page.

`GET https://api.fiscal.ai/v1/company/financials/income-statement/as-reported`

Get as-reported financials for a company

Returns raw financial statement line items exactly as disclosed by the company, including source document links for traceability.

Parameters:

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `companyKey`, `ticker`, `exchange`, `micCode`, `fscl`, `cik`, `figi`, `cusip`, `isin` | query | string | one of them | Identify the company with one: `companyKey` (`NASDAQ_MSFT`), `fscl`, `cik`, `figi`, `cusip` or `isin` (both need a license), or `ticker` (alone for US tickers, else with `exchange` or `micCode`). See [Company Querying](https://docs.fiscal.ai/docs/guides/company-querying.md). |
| `periodType` | query | string | no | Optional period filter as a comma-separated list of: annual, quarterly, semi-annual, ltm, ytd, latest. Defaults to 'annual'. Example: `"annual,quarterly"` |
| `currency` | query | string | no | ISO 4217 target currency code (e.g., USD, CAD, EUR). Case-insensitive; system normalizes to uppercase. Must be 3-4 letters. Defaults to company's reporting currency. Example: `"CAD"` |
| `includeRegions` | query | boolean | no | Add `region` to each source: the box on the PDF page where the value is printed. Applies only to API keys whose responses include `sources`. |

Response 200: As-reported financial data

- `metrics` (array of object)
  - `asReportedMetricId` (string): Example: `"1_IS_65961"`
  - `metricName` (string): Example: `"Products"`
  - `headers` (array of string)
  - `metricFormat` (string): Example: `"number"`
  - `isPointInTime` (boolean)
  - `isCurrency` (boolean): Example: `true`
  - `isPerShare` (boolean)
  - `isKeyMetric` (boolean)
- `data` (array of object)
  - `periodId` (string): Example: `"3_Quarterly_2025-04-27"`
  - `periodType` (string): One of: `Annual`, `Quarterly`, `Semi-Annual`, `LTM`, `YTD`.
  - `reportDate` (string): Example: `"2025-04-27"`
  - `periodDuration` (string): Example: `"3 months"`
  - `calendarYear` (number): Example: `2025`
  - `calendarQuarter` (number): Example: `2`
  - `fiscalYear` (number, optional): Example: `2026`
  - `fiscalQuarter` (number, optional): Example: `1`
  - `isStubPeriod` (boolean, optional): Whether this is a stub/transition period.
  - `stubType` (string, optional): Stub type: fye (fiscal year-end change) or inception (first reporting period). One of: `fye`, `inception`.
  - `stubDuration` (number, optional): Actual duration of the stub period in days. Example: `214`
  - `earningsDate` (string, optional): Example: `"2025-08-27"`
  - `earningsTimeOfDay` (string, optional): Example: `"16:22:14Z"`
  - `lastSourceFilingDate` (string, optional): Example: `"2025-08-27"`
  - `lastSourceFilingTimeOfDay` (string, optional): Example: `"16:22:14Z"`
  - `isRestated` (boolean, optional): Whether this period contains restated data (data differs from original filing).
  - `annualOnOtherBasis` (boolean, optional): Present only when true: this sub-annual period is served on a different reporting basis than its fiscal year's annual period (the annual was restated and the year's quarters never were), so the annual is not the sum of these periods. Example: `true`
  - `metricsValues` (object)
    - `1_IS_65961` (object)
      - `value` (number): Example: `264258909200`
      - `unit` (string): Example: `"M"`
      - `currency` (string): Example: `"EUR"`
      - `isCalculated` (boolean): Whether the value is calculated from other periods.
      - `originalBasisValue` (number, optional): The value the period carried on its original reporting basis. Present only when the served value differs from it.
      - `originalValue` (number, optional): Original value before currency conversion. Example: `294866000000`
      - `originalCurrency` (string, optional): Currency the value is reported in. Example: `"USD"`
      - `appliedExchangeRate` (number, optional): Exchange rate applied for conversion. Example: `0.8962`
      - `sources` (array of object)
        - `document` (string): Example: `"https://api.fiscal.ai/v1/filing/0000320193-24-000123/pdf?ticker=AAPL&exchange=NASDAQ"`
        - `image` (string, optional): Example: `"https://api.fiscal.ai/v1/filing/0000320193-24-000123/page/32/image?ticker=AAPL&exchange=NASDAQ"`
        - `pageNumber` (number, optional): Example: `32`
        - `originalSourceUrl` (string, optional): The source to the original document, for now supports SEC only. Example: `"https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm"`
        - `region` (array of number, optional): Where the value is printed on its PDF page: [x, y, width, height], each a fraction (0 to 1) of the page's width or height, measured from the top-left corner of page `pageNumber` of `document`. Supported on the PDF page only: it does not line up with `image`. Returned only with includeRegions=true, and left out when the value could not be located on the page.

Response 400: Bad Request

Response 403: Forbidden

Response 404: Not Found
