Blog ·
Jira bulk create: four ways to make many issues at once
To bulk create Jira issues, the built-in route is the CSV importer: put one issue per row in a spreadsheet, save it as CSV, then in Jira Cloud go to Filters, Search work items, the More actions menu, and Import work items from CSV. A space admin can import up to 250 issues per file that way, and a Jira admin gets a fuller importer that handles hierarchies and larger files. If you would rather script it, the REST API creates up to 50 issues in one call. And if the batch you are creating is the same batch you created last month, the fastest bulk create is the one you stop doing by hand at all. This guide covers all four, with what each is good at and where each stops, as of September 2026.
The four ways at a glance #
| Method | Who can use it | Batch size | Best for |
|---|---|---|---|
| CSV import from search | Space admin with create and bulk change permissions | 250 issues per file | A one-off list from a spreadsheet |
| CSV external system import | Jira admin | Recommended 1,500 per file | Migrations, parent and child hierarchies |
| REST API bulk create | Anyone with an API token and create permission | 50 issues per request | Another system or a script generating issues |
| A schedule | Whoever owns the rule | The same set, every cycle | Batches that repeat on the calendar |
The figures come from Atlassian's own support and developer documentation, read in September 2026. Jira now calls issues "work items" and projects "spaces" in much of its interface, so the menu names below use the new words.
1. Bulk create from a CSV file (no admin needed) #
This is the one most people are looking for. Atlassian's page on the importer puts the requirement plainly:
Users without administrator permissions can import 250 work items per CSV file.
You need the Create work items and Make bulk changes permissions in the target space. Then:
- Build the sheet. One row per issue. The header row must contain a
Summarycolumn, which is the only required field. Add columns forWork type,Assignee,Priority,Labels,Due dateand any custom field you want to fill. - Repeat a column to set several values. Three
Labelscolumns give an issue three labels. The same trick works for components, fix versions and multi-select fields. - Keep the commas. An empty value still needs its comma, or every later column shifts one place left.
- Quote anything with a comma or a line break in it, such as a description. Excel and similar tools do this for you when they save as CSV.
- Import. In the sidebar select Filters, then Search work items, then More actions (•••), then Import work items from CSV. Choose the file, map each column to a Jira field, and run Validate before Begin import.
- Save the configuration at the end if you will import a similar file again. It remembers the column mapping.
The catch that matters most: this quick importer cannot build a hierarchy. Atlassian's page says it "can't map work items with a parent-child hierarchy relationship", so an epic with its stories, or a task with subtasks, needs the admin importer below.
2. The admin CSV importer, for hierarchies and big files #
A Jira administrator reaches the full importer through Settings, System, then External System Import and CSV. It reads the same CSV format with more options:
- Parent and child links. Add
Work item ID,Work typeandParentcolumns, give each row a unique number, and point each child'sParentat its parent's number. Parents must appear in the file before their children. - Several spaces in one file. Add
Space nameandSpace keycolumns and every row lands in the space it names. - Updates as well as creates. Include a column mapped to the work item key, and a row with an existing key updates that issue instead of creating a new one.
- Creating missing values such as a new priority or work type on the fly, though not new statuses.
Atlassian recommends splitting large imports into files of about 1,500 work items, each of which it estimates takes about an hour, and running them at quiet times of day.
3. Bulk create through the REST API #
When the list of issues comes out of another system, a script beats a spreadsheet. Jira Cloud's REST API has a Bulk create issue endpoint (POST /rest/api/3/issue/bulk) that, in the words of Atlassian's developer reference, "creates upto 50 issues and, where the option to create subtasks is enabled in Jira, subtasks".
A few things to know before you write the script:
- Batch in fifties. A list of 400 issues is eight requests.
- Descriptions use Atlassian Document Format, the JSON structure behind Jira's editor, rather than plain text in version 3 of the API.
- Fields must be on the create screen. The fields you can set are the ones Jira's create metadata returns for that space and work type, which are the fields on the create screen.
- Subtasks need their parent first, so create the parents in one request and the subtasks in the next, using the keys the first request returned.
For a one-time job this is more setup than a CSV. For an integration that runs every day, it is the right tool.
4. Bulk create on a schedule: when the batch repeats #
Look at what your team actually bulk creates. A surprising share of it is the same list every time:
- the monthly maintenance set: patch servers, rotate keys, check backups;
- the quarterly access review, one issue per system;
- the sprint start chores that someone pastes in every two weeks;
- the month-end reporting tickets with a new month in every title.
Importing that list from a CSV each cycle works, but it is still a person remembering to do it, editing the dates in the sheet, and running the importer. That is a recurring job wearing a bulk-create costume.
There are two ways to hand it to Jira:
Jira Automation's Scheduled trigger runs a rule on a timetable and can create issues. It is included with Jira, and each run counts against your plan's monthly automation allowance. Our Jira Automation pricing article explains how that allowance is counted, and Jira cron expression covers the timetables a rule can and cannot express.
A scheduling app holds the list for you. Recurring Work Items for Jira is ours, so weigh this part accordingly. You write each rule once in a project: a schedule plus an issue template. It then creates the issue every time the schedule comes round, including:
- Subtask checklists created with the parent, so one rule can produce a whole set of related work;
- Dynamic titles, so the issue reads "Access review, October 2026" rather than last month's name. The token reference lists what a title can contain;
- Daily, weekly, monthly and quarterly rules with working-day and holiday handling;
- A run history showing each occurrence as created, skipped or failed, with the reason.
It does not use your Jira Automation allowance. Its limits: it works within one project at a time, it is Jira Cloud only, and it only creates issues on a schedule. It will not import a spreadsheet of one-off tasks, so for those the CSV importer above is still the tool.
Which method fits your list #
| Your situation | Use |
|---|---|
| A spreadsheet of up to 250 new tasks, one time | CSV import from search |
| Epics with stories, or tasks with subtasks, from a file | Admin CSV importer |
| Thousands of issues in a migration | Admin CSV importer, in batches |
| Issues generated by another tool, continuously | REST API bulk create |
| The same set of issues every week, month or quarter | A schedule: Automation or a scheduling app |
If you are choosing between the two scheduling options, Jira recurring tasks: Automation, cloning, or a scheduling app? compares them in depth. If the batch is really one issue with a fixed set of steps, a Jira subtask template may be all you need.
Common CSV import mistakes #
Most failed imports come down to a handful of problems:
- Dates in the wrong format. The wizard asks for the date format on its second step. Match it exactly, or due dates import blank.
- Estimates in hours. Original and remaining estimate columns are read as seconds, so "2" means two seconds.
- Users that do not exist. Assignee and reporter should be an email address or an Atlassian account ID that Jira already knows.
- Mandatory fields missing. If a field is required on the create screen, the CSV must fill it.
- Punctuation in the header row. Keep headers to plain words, or the importer may misread the columns.
Run Validate before every import. It is much easier to fix a sheet than to clean up 200 half-right issues.
When the manual way is enough #
Bulk creation tools pay off at scale. You can skip them when:
- It is fewer than ten issues. The create dialog's "Create another" option, which keeps the dialog open after each issue, is quicker than building a file.
- Every issue needs thought. If each description is written fresh, the spreadsheet only moves the typing somewhere else.
- The list is a copy of an existing set. Cloning the issues you already have, or a saved template as described in Jira task template, avoids re-entering fields at all.
How to start #
- Write down the list you want to create and mark whether it is a one-off or repeats.
- For a one-off, export a small sample issue to CSV first, so your header row matches your fields.
- Import five rows, check them, then import the rest.
- For a list that repeats, stop importing it: set it up once as a scheduled rule, in Jira Automation or with Recurring Work Items for Jira, and let the next cycle arrive on its own.