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.

Sources checked