Export limits
Summarize
Summary of Export limits
The ServiceNow platform enforces default upper limits on data exports to prevent performance issues when exporting large datasets. These export limits vary by export format and can be customized through system properties. Customers are advised to break up large exports into smaller chunks if their data exceeds set thresholds.
Show less
Export Limit Properties and Behavior
- The number of records returned during export can be controlled with the sysparmrecordcount URL parameter.
- The system first checks format-specific export limit properties. If not set, it falls back to a general export limit property. If neither is set, a default limit applies.
- Setting export limits above the default values may impact system performance.
- Export limits are configurable under System Properties > Import Export.
Default Limits by Format
- XML, CSV, Excel (XLS and XLSX), JSON: Default limit is 10,000 records.
- Excel cell threshold: Maximum 500,000 cells per export; exceeding this stops the export and prompts using CSV instead.
- PDF exports: Default maximum of 1,000 rows and 250 detail pages, with configurable limits up to 5,000 rows and 25 columns.
Warning Threshold and User Experience
A warning threshold property (glide.ui.export.warn.threshold) triggers a dialog when export records exceed a set limit, offering options to wait or receive the export via email. The email attachment size must comply with maximum email size limits.
Practical Examples
- If exporting 30,000 CSV records with glide.csv.export.limit set to 20,000 and glide.ui.export.limit at 10,000, only 20,000 records are returned.
- For Excel (XLSX), with no custom limit set, the default 10,000 record limit applies even if 30,000 records are requested.
- PDF exports default to 1,000 rows even if the requested export size is larger; the maximum can be configured up to 5,000 rows.
Recommendations for ServiceNow Customers
- Review and adjust export limit properties cautiously via System Properties to balance export needs and system performance.
- Prefer CSV format for very large exports due to higher limits and better handling of large datasets.
- For Excel exports, keep data under the 500,000 cell threshold to avoid incomplete exports and memory issues.
- Consider breaking large exports into smaller chunks to ensure performance and complete data retrieval.
The platform provides a default upper limit for data exports.
The purpose of the upper limit is to avoid creating performance issues when a table is excessively large. If you must export more records than the threshold permits, Break up a large export into separate manageable chunks.
Export limit properties
You can set the number of records to return during an export using the sysparm_record_count URL parameter.
- First, the platform checks the property that defines the format-specific export limit. Each format can have a different limit. Although this property can be set to any value, exceeding the default export limit can impact system performance. You may want to set the property at or below the default limit and have users Break up a large export to export large amounts of data.
- If the format-specific property is not set, the system checks the property for the general export limit. This property can also be set to any value, but exceeding the default export limit can impact system performance.
- If both the format-specific export limit and the general export limit property aren't set, the system enforces the default export limit.
| Format | Format-specific export limit | General export limit | Default export limit |
|---|---|---|---|
| XML | glide.xml.export.limit | glide.ui.export.limit | 10,000 |
| CSV | glide.csv.export.limit | glide.ui.export.limit | 10,000 |
| EXCEL (XLSX) | glide.xlsx.export.limit | glide.ui.export.limit | 10,000 |
| EXCEL (XLS) | glide.excel.export.limit | glide.ui.export.limit | 10,000 |
| EXCEL (XLSX) | glide.xlsx.max_cells | N/A | 500,000 |
| EXCEL (XLS) | glide.excel.max_cells | N/A | 500,000 |
| glide.pdf.max_detail_pages Note: The number of rows can be set from 0 to 250. If no
value is specified, the default is 250. If a value greater than 250 is specified, the
default value of 250 is used. |
250 | 250 | |
| glide.pdf.max_rows Note: The number of rows can be set from 0 to 5,000. If no value is
specified, the default is 1,000. If a value greater than 5,000 is specified, the default
value of 1,000 is used. |
N/A | 1,000 | |
| glide.pdf.max_columns Note: Only 25 header labels fit on a page. |
N/A | 25 | |
| JSON | glide.json.export.limit | glide.ui.export.limit | 10,000 |
A warning threshold property called glide.ui.export.warn.threshold controls how the records are exported. When you export enough records from a list to exceed the threshold, a choice dialog appears. You can choose to wait for the export to complete or email the exported records as an attachment. The warning threshold can be changed in the system property. The email attachment must not exceed the maximum Email size limits.
| Example | Property | Breaking export limits |
|---|---|---|
| Exporting to CSV |
|
If you export 30,000 records, the number of records returned from the database is 20,000. The number of records specified for export exceeds the value set in the glide.csv.export.limit property. |
| Exporting to Excel (XLSX) |
|
If you export 30,000 records, the number of records returned from the database is 10,000. The number of records specified for export exceeds the default export limit for Excel. |
| Exporting to PDF |
|
If you export 5,000 records, the number of records returned from the database is 1,000. The number of records returned is limited because the number of records specified for export exceeds the default value in the glide.pdf.max_rows property. |
Excel export threshold
Excel exports are intended for relatively small exports with fewer than 500,000 cells. CSV can handle larger exports.
If an exported spreadsheet has more than 500,000 cells, the export process stops. You receive the Excel file at that point. The following message displays in the bottom row: Export stopped due to excessive size. Use CSV for a complete export.
The export puts the information into the Excel document with 32,000 rows per spreadsheet.