Export More Than 1,000 Jira Issues to Google Sheets

A large export is a pagination and resume problem, not a reason to copy several CSV files by hand.

Why the first page is not the whole result

Jira search APIs return issues in pages. A reliable exporter keeps requesting pages until the result is exhausted, while respecting the response metadata and service limits. Treating the first response as the full dataset silently truncates reports.

Make the export restartable

  1. Use deterministic JQL ordering, ideally with issue key as a tie-breaker.
  2. Persist the next page position or cursor after every successful batch.
  3. Write batches incrementally and deduplicate on issue key.
  4. Resume after timeouts rather than clearing the sheet and starting again.

Validate the finished sheet

Compare the written row count with Jira's reported total, spot-check the first and last issue keys, and keep formula tabs separate from the raw export. If permissions differ between users, run the schedule under the account that owns the report.

Custom fields need their own pass

A large export that includes custom fields hits a second problem: user, option, array, and rich-text fields don't come back as plain text. See why Jira custom fields export as [object Object] or raw JSON for what each field type actually returns.

This is a different limit than the CSV export button

The paged search API above is a different mechanism from the Issue Navigator's CSV export button, which has its own, separate cap that Atlassian raised to 10,000 issues, past which its documented fix is manually splitting the JQL and merging files. See why Jira's CSV export still caps at 10,000 issues for that angle.

Filters hit the same paging problem

A large result set is just as often a saved filter as a hand-written query. See syncing a Jira filter to Google Sheets automatically for running a filter directly and keeping it scheduled, not just exporting it once.

Use resumable export without writing pagination code

Sheet Sync for Jira handles paged JQL exports and continues long jobs across Apps Script runs.

See Sheet Sync for Jira