Fundamentals
Q4 reads every financial report filed on Tadawul and keeps every number printed in it: every line of the primary statements and every table in the notes, not just the headline lines.
You can read the same data two ways:
- Standardised, to compare. Lines are mapped to standard metric keys, so
net_incomemeans the same thing for a bank and a cement company, across every year. - As reported, to see the detail. Every line exactly as the company printed it, in its order, with its own labels, subtotals and note references. Nothing renamed, merged or dropped.
Both point at the same printed figures, so a standardised number and its as-reported line always agree, and both lead back to the page.
Standardised or as reported
| Standardised | As reported | |
|---|---|---|
| Use it to | Compare companies and years, screen, model | Read a statement or note in full, audit, cite |
| Lines | Standard keys only (net_income, total_assets…) | Every line the company printed |
| Labels | Q4's standard labels | The company's own labels, English or Arabic |
| Order | Fixed, the same for every company | As printed, with indentation and subtotals |
| Company-specific lines | Rolled into the nearest standard key | Kept as their own lines |
| Note references | No | Yes, each line's note number |
| Statements | Retrieve standardised statements | Retrieve as-reported statements |
| Notes | Note figures with a metric in List figures | Retrieve a note: text and tables as printed |
Under both sits List figures: one row per printed table cell, with the document, page and position it came from. Filter it by document_id alone to get every line item in a filing, statements and notes.
From a statement line to its footnote
As-reported rows carry the note number printed beside them. Follow it to the note:
# 1. The income statement as printed. "Income from investments and financing" cites note 24.
curl "https://api.q4.sa/v1/companies/1120/financials/as-reported?statement=income&fiscal_year=2025" \
-H "x-api-key: $Q4_API_KEY"
# 2. Note 24: its text and its breakdown table.
curl "https://api.q4.sa/v1/documents/doc_7Hk2pQ/notes/24" \
-H "x-api-key: $Q4_API_KEY"Notes to the financial statements
The notes are where the detail is: segment results, loans by stage, maturity profiles, related-party balances, zakat, commitments and contingencies, accounting policies. Q4 keeps both halves of every note:
- Its numbers. Every table in a note is in List figures with
statement=note, labelled with the note it sits under (note_title) and the headings above it (header_path). Filter withnote=segmentor search row labels withq. - Its text. Retrieve a note returns the note as printed, paragraph by paragraph with the page each comes from, plus its tables with the figure ID in every cell.
To find a note across years, use Search notes, e.g. q=zakat. To list a single report's notes, use List notes.
# Every segment figure in Al Rajhi Bank's 2025 annual report
curl "https://api.q4.sa/v1/companies/1120/facts?statement=note¬e=segment&fiscal_year=2025" \
-H "x-api-key: $Q4_API_KEY"Restatements
When a later filing changes a figure, the statements use the latest value and set restated: true. The figure keeps the earlier values in restatements, so you can show both.
Banks and insurers
Banks and insurers report different line items. They share the common keys (net_income, total_assets, total_equity) and add their own (net_financing_income, insurance_revenue).
