Q4API Docs
Q4 APISign inGet API key
DocumentationAPI Reference
Overview
API reference
Companies
GETList companiesGETRetrieve a companyGETList sectors
Market data
GETRetrieve a quoteGETList quotesGETRetrieve price historyGETRetrieve index historyGETRetrieve market summaryGETList market moversGETList sector performanceGETList tradesGETRetrieve order book depth
WebSocket
WSQuotes streamWSTrades streamWSDepth stream
Fundamentals
GETRetrieve standardised statementsGETRetrieve as-reported statementsGETList figuresGETRetrieve ratiosGETCompare companiesGETList dividendsGETList corporate actionsGETList stock eventsGETSearch notes
Documents
GETList documentsGETRetrieve a documentGETList document pagesGETRetrieve document textGETRetrieve document summaryGETList notesGETRetrieve a noteGETList sectionsGETRetrieve a sectionGETSearch board report sections
Earnings calls
GETList earnings callsGETRetrieve an earnings callGETRetrieve a transcriptGETRetrieve call audio
Announcements
GETList announcementsGETRetrieve an announcement
Economic data
GETList seriesGETList observations
Webhooks & alerts
POSTCreate a webhookGETList webhooksDELDelete a webhookPOSTCreate an alert ruleGETList alert rulesDELDelete an alert rule
Account
GETRetrieve usage
Documents

List documents

GEThttps://api.q4.sa/v1/documents
Lists filings and decks, newest first, filtered by company, type and period.
Free

Authorization

x-api-keyheaderrequired
Your API key. See Authentication.

Query parameters

symbolsstring (comma-separated)
Comma-separated Tadawul symbols. Matches any of them.
typesstring (comma-separated)
Comma-separated: financial_report, board_report, presentation, prospectus.
fiscal_yearinteger
Fiscal year covered.
fiscal_periodstring
Period covered.
One of:FYQ1Q2Q3Q4
fromdate
Start date, inclusive (YYYY-MM-DD).
todate
End date, inclusive (YYYY-MM-DD).
updated_afterdatetime
Only items created or changed after this time. Use it to sync incrementally.
limitinteger
Results per page.
Default: 50 · Range: 1–500
cursorstring
The next_cursor from the previous page. Omit it for the first page.

Response

dataobject[]
The result.
idstring
Unique ID.
symbolstring
Tadawul symbol.
typestring
Type.
titlestring
Title.
languagestring
Language code.
fiscal_yearinteger
Fiscal year.
fiscal_periodstring
Fiscal period: FY, Q1–Q4, H1 or 9M.
published_atdatetime
When it was published on Tadawul.
pagesinteger
Page count.
file_urlstring
Link to the PDF.
source_urlstring
Original page on the Saudi Exchange.
updated_atdatetime
When this record last changed.
paginationobject
Paging details. See Pagination.
next_cursorstring
Pass as cursor to get the next page. null on the last page.
limitinteger
Page size used.

Errors

400, 401, 403, 404, 429. Every error has the same shape: see Errors.
← Previous
Search notes
Next →
Retrieve a document
Request
curl "https://api.q4.sa/v1/documents?symbols=1120&types=financial_report&fiscal_year=2025" \
  -H "x-api-key: $Q4_API_KEY"
Response
{
  "data": [
    {
      "id": "doc_7Hk2pQ",
      "symbol": "1120",
      "type": "financial_report",
      "title": "Annual financial statements 2025",
      "language": "en",
      "fiscal_year": 2025,
      "fiscal_period": "FY",
      "published_at": "2026-02-18T05:31:00Z",
      "pages": 96,
      "file_url": "https://api.q4.sa/v1/documents/doc_7Hk2pQ/file",
      "source_url": "https://www.saudiexchange.sa/…",
      "updated_at": "2026-02-18T06:02:44Z"
    }
  ],
  "pagination": {
    "next_cursor": "eyJpZCI6MTIwfQ",
    "limit": 50
  }
}