It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

REST Client get all issues of project

Hey there,

I want to get all issue keys of a project via Rest. Is there any method for that?

In the api I do not find any method there for.

7 answers

1 accepted

3 votes
Answer accepted

hi.

you can trigger all issus of a project just like a jql query...

find more details here

http://docs.atlassian.com/jira/REST/latest/

Like Miguel Esteban likes this

Hi C. Faysal,

/rest/api/2/search?jql=project="Your Project Key"

This gives you just first 50 issues, how can i get all the issues? I have around 1348

Like Nicolas Desjardins likes this

Same problem here. Do I have to make two calls in order to get all issues?

If you check the docs, you’ll see information about the “maxResults” parameter to the “/rest/api/2/search” resource. That’s what you want.

Like # people like this

This is everything I could find regarding "maxResults": "the maximum number of issues to return (defaults to 50). The maximum allowable value is dictated by the JIRA property 'jira.search.views.default.max'. If you specify a value that is higher than this number, your search results will be truncated."

The problem is, that you may not know how many there are before doing the query. And setting the value to some randomly high number feels wrong. I really don't know why it has to be that complicated. Why is the default 50 and not 'all'?

For everyone who has the same issue: Just use -1 as value for maxResults. That 'somehow' works.

Yeah, that’s how “maxResults” works. You don’t put in how many results you think you’ll get. You put in how many results you can possibly handle. It’s like a paged display of results. If you go to Google and search for “baseball,” Google won’t send over all 500,000,000 results that it knows about.

Obviously, whatever Jira instance you’re dealing with is a lot smaller than Google, so maybe whatever is gathering the results of your REST call can deal with all the results Jira can throw at you. In this case, setting “maxResults” to an arbitrarily high number, or the special value of -1 is the correct thing to do. That’s how it works.

Got it. Thanks.

Hi. anyone successful to get the issues no exceed 50 by using vba? can share the coding here? 

maxResult attribute helps only until 1000 issues.

Is there anything that can help get beyond this limit?

Like Tim Padgett likes this

So there are two things one has to do..

  1.  Get the total issues in a project with a basic and 'quick and light' query
    1. I say light and quick because we are simply establishing the total count of issues in the project in this step.
    2. URL: https://<server>/rest/api/2/search?jql=project=<YourProjectKey>&maxResults=0
    3. This gives a result like --> 
      { "startAt": 0,
        "maxResults": 0,
        "total": 22114,
        "issues": [] }
  2. Iterate over the total number of issues to fetch the desired details/fields of each issue.
    1. Note: Maximum allowable fetch seems to be 1000 issues at a time. So let's break it up for iteration using the parameters startAt and maxResults.
    2. startAt is the index of the issue in the 'complete list (22114 items as above)'
    3. We can also filter the fields that we are interested to fetch. This is especially useful because failing to provide this will result in fetching all fields in each issue, including custom fields. Down below, I'm interested only in key, summary and description fields. 
    4. for startIndex in range(0, 22114, 1000): 

      search on URL: "https://<server>/rest/api/2/search?jql=project=<YourProjectKey>&fields=key,summary,description&maxResults=1000&startAt={startIndex}"

This should be the top answer IMO. Thanks a lot!

Like # people like this

This is everything I could find regarding "maxResults": the maximum number of issues to return (defaults to 50). The maximum allowable value is dictated by the JIRA property 'jira.search.views.default.max'. If you specify a value that is higher than this number, your search results will be truncated.

The problem is, that you may not know how many there are before doing the query. And setting the value to some randomly high number feels wrong. I really don't know why it has to be that complicated. Why is the default 50 and not 'all'?

For everyone who has the same issue: Just use -1 as value for maxResults. That 'somehow' works.

some requests as:

/rest/api/2/search?jql=project="Your Project Key"&startAt="start"&maxResults="max"

where max limit is 1000. If you try a number greather than 1000 rest api returns only 1000 results.
You must to look "total" param in response to know how many request have to do.

FYI look at pagination section: https://docs.atlassian.com/jira/REST/latest/

Regards

I tried with "/rest/api/2/search?jql=project" and works.

However for entire string like /rest/api/2/search?jql=project="Your Project Key"&startAt="start"&maxResults="max" , 404 not found error is returned.

I am using JIRA 6.2. Is it not supported?

Please provide space before and after '&'
rest/api/2/search?jql=project="Your Project Key" & startAt="start" & maxResults="max"

Hi All,

  What doe the APIs look like if I want:

1 - Get all the sprint IDs of a project?

2 - Get all the issues in a specific sprint?

I'm new to the API syntax and looks like the API docs did not explain the syntax well.  I'm continue to loop at the API doc and its API examples while waiting for some good tips.

Thanks a lot guys

J.N

I found the example page where it describes how to do all these.

Thanks anyway folks

J.N

Would you like to share this example page maybe @John Nguyen ?

I have the same issue with worklogs, I can not get more than the first 20, 

I tried all the parameters specified in the Jira pagination spec, ex:

/issue/GPIM-7136?fields=worklog&startAt=15
/issue/GPIM-7136?fields=worklog&maxResults=10
/issue/GPIM-7136?maxResults=10

I am always getting back 

"fields": {
"worklog": {
"startAt": 0,
"maxResults": 20,
"total": 43,

 

just sharing my resolution to the concatenation of results , and getting all the info 

i have a jira query function in perl 

, which is called for every jql i need and return a ref to all the issues that come back 
so i am calling the function as follow :

defining the max results jira allows to retrieve:

use constant {
JIRA_MAX_RESULTS => 1000,
};

initialize my jql :

my $jira_Jql = 'project = "GIGI" and type in ("Bug" , "Minor Bug") ';

define which return columns I need (instead of getting big hash back this will narrow it a bit ) :

my $returnedColumns = [ qw/key/ ];

or another example to get key + status :
my $returnedColumns = [ qw/key status/ ];


and I call the function : 


my $jiraResultsRef = queryJira($jira_Jql, $returnedColumns);

 

:the function itself looks as below and iterate via the results

first it run the jql with maxresults = 0 to get the number of results which exist,

then based on that it initializes the amount of iterations need to do in order to get all the info .

last stage is to concatenate the results and returning the ref to this array .

 

use JIRA::REST;
sub queryJira { my ($jira_Jql, $returnedColumns) = @_;

# set Connection to the jira API.
$_jiraUrl = "http://$_jira_host:$_jira_port";

$_jiraConnection = JIRA::REST->new({
url => $_jiraUrl,
username => $_jira_user,
password => $_jira_pass,
});

# return search total number of results
my $queryTotalOfResults = $_jiraConnection->POST('/search', undef,
{
jql => $jira_Jql,
startAt => 0,
maxResults => 0,
fields => $returnedColumns,
});

#check the amount of issues returned :
my $totalResultsNumber = $queryTotalOfResults->{total};
# dividing the number with the jira's MAX results which are allowed via "ceil" which will give the number of iteration needed 
my $numberOfIterations = ceil ($totalResultsNumber / JIRA_MAX_RESULTS) ;
print ("\n \$totalResultsNumber: $totalResultsNumber \n \$numberOfIterations : $numberOfIterations \n\n");

my $queryResults;
my @_returnedResults ;

if (not $totalResultsNumber) #if no results found
{
return;
}
#assuming there are result start looping :
for(my $counter=0; $counter <= $numberOfIterations; $counter++)
{
$queryResults = $_jiraConnection->POST('/search', undef,
{
jql => $jira_Jql,
startAt => ($counter*JIRA_MAX_RESULTS),
maxResults => JIRA_MAX_RESULTS,
fields => $returnedColumns,
});
#and concatenate them to one big happy @_returnedResults
@_returnedResults = ( @_returnedResults, @{$queryResults->{issues}} );
}
# making sure i got the same amount of keys returned :
print ("\n total of keys in the hash :" . (scalar @_returnedResults) . "\n" );
return \@_returnedResults;
}


 

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted in Jira

Calling all Jira Cloud users! Give us feedback on our exploration of a new navigation.

Hi everyone! My name’s Matt and I’m a product manager at Atlassian. I work in the navigation & findability space for all our Jira Cloud products. We’ve been working on trying to improve the exp...

771 views 8 12
Join discussion

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you