---
title: "How do I export Jira items for a Ketryx migration?"
description: "A key thing to understand about exporting Jira items for a Ketryx migration is that each CSV has to contain fewer than 1000 items. This is typically achieved by using JQL to pull the entirety or a subset of the Jira issue types."
category: "Frequently Asked Questions"
section: "General"
keywords: ["export", "migration", "jql", "csv", "story", "issues", "number", "sub"]
source_url: "https://support.ketryx.com/hc/en-us/articles/35192684635277-How-do-I-export-Jira-items-for-a-Ketryx-migration"
last_reviewed: 2026-06-11
---

# How do I export Jira items for a Ketryx migration?

> **In short:** A key thing to understand about exporting Jira items for a Ketryx migration is that each CSV has to contain fewer than 1000 items. This is typically achieved by using JQL to pull the entirety or a subset of the Jira issue types.

A key thing to understand about exporting Jira items for a Ketryx migration is that each CSV has to contain fewer than 1000 items. This is typically achieved by using JQL to pull the entirety or a subset of the Jira issue types.

For example, you could use this to determine the number of issues for a project with Jira Key "ABC":

```
project = ABC ORDER BY assignee DESC, created DESC
```

If you have less than 1000 items, click **Export > Export CSV (all fields)**. You're done!

### If you have more than 1000 Jira issues, read on...

Using either the BASIC interface or JQL, create exclusive, non-overlapping groups of less than 1000 issues.

![Screenshot 2025-03-28 at 5.53.25 PM.png](https://support.ketryx.com/hc/article_attachments/35409333146893)

This pulls out the items of type Story:

```
project = ABC AND type = Story ORDER BY created DESC
```

If you need to subdivide an issue type (for example Story), one good way can be by assignee.

```
project = ABC
AND type IN Story
AND assignee IN (empty, XXXXX, YYYYY)
ORDER BY assignee DESC, created DESC
```

```
project = ABC
AND type IN Story
AND assignee NOT IN (XXXXX, YYYYY)
ORDER BY created DESC
```

Note: the "empty" is critical to account for in the first one. Otherwise you could be off the correct count by the number of unassigned issues. The XXXXX and YYYYY refer to specific user IDs - find those by selecting the people in the Jira GUI and copy the JQL.

This pulls out everything except for Story and Sub-Tasks:

```
project = ABC AND type NOT IN (Story, subTaskIssueTypes()) ORDER BY assignee DESC, created DESC
```

For each of the sub-1000 issue groups, click **Export > Export CSV (all fields)**.

As a sanity check, always confirm that the final number of rows is consistent with the expected number of issues from the original.

The final step is to combine the CSV files in such a way that preserves all of the column headers, which may vary by CSV file. This can be done with python (using pandas for example), C, go-lang, or your favorite language. Reach out to the Client Operations team with questions.

Finally, you use the [External System Import tool](https://www.loom.com/share/24aec844c6a648679da3cc81c87505d3) in Jira to bring your issues into the new project.

## Related articles

- [How do I import data into my Jira project?](how-do-i-import-data-into-my-jira-project.md)
- [How do i migrate data into a Ketryx project?](how-do-i-migrate-data-into-a-ketryx-project.md)
- [How can I see or export the users in my Ketryx organization? How do I know how many users are in my organization?](how-can-i-see-or-export-the-users-in-my-ketryx-organization-how-do-i-know-how.md)
- [Can I export all of my data from Ketryx?](can-i-export-all-of-my-data-from-ketryx.md)
- [Can I use the Jira External Systems Importer to import my risk items, along with their risk matrices?](can-i-use-the-jira-external-systems-importer-to-import-my-risk-items-along-with.md)
