How do I get issues more than 1000 with a single REST request?

Bhakti Al Akbar August 25, 2017

I'm developing a desktop app using JIRA Cloud API. I want to get all issues but it's limited to 1000 max per request.

I tried to use while function with the statement; if the total number of issues if bigger than retrieved issues, then repeat the REST request. See the code below.

But unfortunately, this did not work. In fact, it crashed.

client.get(`${host}/rest/api/2/search?jql=assignee=currentuser()&startAt=0&maxResults=1000`, authParams, function(data, response){

issues = data.issues;
total = data.total;

while(issues.length < total){

client.get(`${host}/rest/api/2/search?jql=assignee=currentuser()&startAt=${issues.length + 1}&maxResults=1000`, authParams, function(data, response){
issues = issues.concat(data.issues);
});
}

}); 

Can anyone help? Thanks!

1 answer

0 votes
Warren
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 25, 2017

Hi Bhakti

It looks like you're on the right track, but you need a minor change :

Your first call gets the first 1000 issues (0 - 999), which should work

Within the while, I think issues.length is the total number of available issues, not the number of issues returned from the first call. Let's say you have 1600 issues, you're telling it to start at 1601 (instead of 1000), which causes the crash

Suggest an answer

Log in or Sign up to answer