Q4API Docs
Q4 APISign inGet API key
DocumentationAPI Reference
Overview
IntroductionQuickstartData overviewPlans and limits
Datasets
CompaniesMarket dataRealtime & streamingFundamentalsDividends & corporate actionsFilings & reportsBoard reportsPresentationsEarnings callsAnnouncementsEconomic data
REST API
AuthenticationPagination and filteringRate limitsErrors
WebSocket
ConnectingStreamsWebSocket errors
Webhooks
WebhooksWebhook eventsSignatures
MCP
Q4 MCP connector
More
ChangelogSupport
Datasets

Fundamentals

Statements standardised or as reported, every footnote, and 5.1M+ figures traced to their page.
5.1M+
Sourced figures, notes included
Standard
Metric keys across companies
100%
Traced to a page
Available from Starter+

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_income means 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

StandardisedAs reported
Use it toCompare companies and years, screen, modelRead a statement or note in full, audit, cite
LinesStandard keys only (net_income, total_assets…)Every line the company printed
LabelsQ4's standard labelsThe company's own labels, English or Arabic
OrderFixed, the same for every companyAs printed, with indentation and subtotals
Company-specific linesRolled into the nearest standard keyKept as their own lines
Note referencesNoYes, each line's note number
StatementsRetrieve standardised statementsRetrieve as-reported statements
NotesNote figures with a metric in List figuresRetrieve 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 with note=segment or search row labels with q.
  • 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&note=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).

Endpoints

GET
/companies/{symbol}/financials
Retrieve standardised statements
Starter+
GET
/companies/{symbol}/financials/as-reported
Retrieve as-reported statements
Starter+
GET
/companies/{symbol}/facts
List figures
Starter+
GET
/companies/{symbol}/notes
Search notes
Starter+
GET
/documents/{id}/notes
List notes
Starter+
GET
/documents/{id}/notes/{number}
Retrieve a note
Starter+
GET
/companies/{symbol}/ratios
Retrieve ratios
Starter+
GET
/compare
Compare companies
Starter+
← Previous
Realtime & streaming
Next →
Dividends & corporate actions
On this page
Standardised or as reportedFrom a statement line to its footnoteNotes to the financial statementsRestatementsBanks and insurersEndpoints