Where the 500 comes from
Workday's View WQL Query Result report shows at most 500 rows. It cuts off any query that has
no LIMIT or a LIMIT above 500, and warns "Results will be limited to 500
instances only." WQL itself has a separate limit of 1 million rows, and the REST API returns a query's
result a page at a time.
So the question is where you are running the query, and what you need from the rows.
In the report: split the query into windows
Filter on a date or number so each run returns fewer than 500 rows, then move the window. Hire
date by year is a natural split for workers. Keep the windows touching but not overlapping,
with >= at the start and < at the end, so no row is counted twice
or missed.
SELECT worker, employeeID, hireDate
FROM allWorkers
WHERE hireDate >= '2024-01-01' AND hireDate < '2025-01-01'
ORDER BY hireDate Split on a date or number, not on text: WQL compares text for equality and patterns only, so "employee ID greater than" is not available.
If you need a number, let WQL count
Most "I need all the rows" requests are really a count or a total. Ask WQL for that directly
with COUNT(), SUM or AVG and GROUP BY. The
answer comes back as a few rows, whatever the size of the tenant.
SELECT supervisoryOrganization, COUNT()
FROM allWorkers
GROUP BY supervisoryOrganization This matters beyond the report. A page script in an Extend app that loads a whole worker roster to count it can run out of memory in a large tenant, even when every row is within the API's limits.
For volume: page through the REST API
The WQL REST API runs the query once, keeps the result for your session (up to 30 minutes),
and hands it back a page at a time. Set limit to the page size, up to 10,000, and move
offset forward by the same amount for each page, starting at zero.
…/data?limit=1000&offset=0&query=SELECT worker, hireDate FROM allWorkers
…/data?limit=1000&offset=1000&query=SELECT worker, hireDate FROM allWorkers
The limit parameter and the LIMIT clause are different things. The parameter
sets the page size. The clause caps the whole result. Keep both meanings explicit when you record
how many rows were requested and how many were actually read.
Keep the four limits separate
- The tenant report displays at most 500 rows.
- A REST response page can contain up to 10,000 rows.
- The cached REST result lasts for the user session, up to 30 minutes.
- A WQL query returns at most 1 million rows.
None of those numbers proves that an Extend page should load that many records into its own script. Filter, aggregate and page for the amount the person can use on screen, then test with a realistic tenant population.
Start with the complete WQL method
The Workday WQL guide covers data-source discovery, query construction, execution routes and result verification. If Workday rejects the query rather than truncating its display, use the WQL error guide.