Could you please give us some suggestions on how to pull data from JIRA app through API calls?

Hello everyone.

I’m Alex, and I’m new to our community. I’m not sure if I can ask for some guidance here from our community, and I’m sorry if I posted my question in the wrong place. If anyone could point us to the correct place where we can ask questions, we will really appreciated it.

We ran into some issue when we are trying to pull JIRA data like ProjectName, TypeName, Priority, Reporter, CreatedDateTime and etc. through API calls.

When we selected the Authentication Mode as “Basic”, fill in the Server URL (https://CompanyName.atlassian.net/), my email user name and our token (without scope limitation) generated on id.atlassian(.com cannot put the link here due to 2 website limiation), we got a successful connection.

However, when we selected the fields we needed and tried to pull data, we got the error message like “{“errorMessages”:[“The requested API has been removed. Please migrate to the /rest/api/3/search/jql API. A full migration guideline is available at
https://developer.atlassian.com/changelog/#CHANGE-2046"],"errors”:{}}”

I didn’t really understand what would be the solution to our issue and need based on the info from the link provided in the error message. Could anyone please give us some suggestions where I might have done wrong, and what is the correct way of pulling data?

Thank you.

Alex

Best regards

Hello @AlexChen,

I think this link can help you : https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-search/#api-rest-api-3-search-jql-get

Best regards,
Ornella

1 Like

Thank you Ornella for your help.

To be honest, I don’t quite understand what the post is about, but I noticed that in the response portion, it’s using a lot of https://your-domain.atlassian.net/ then adding “/rest/api/3/”. So I did some testing adding this “/rest/api/3/” string or “/rest/api/3/search/jql”(according to the error message) to the end of our Server URL, but whenever I use “Basic” mode, I got a “The remote server returned an error: (404) Not Found.” error. The only successful connection I got is from our server URL “https://CompanyName.atlassian.net/”

If I switch to PersonalAccessToken mode, then for all three URLs (with different and without trailing strings) I got a “The remote server returned an error: (403) Forbidden. (Error Type / Reason: Forbidden, Detailed Message: {“error”: “Failed to parse Connect Session Auth Token”})System.Net.WebException” error.

Usually we are using a REST connection manager, for example for our on prem JIRA system, we just select the Authentication Mode, and fill in the Server URL, User name and Token.

I guess my questions is that, is there an valid URL that we can use to pull data from JIRA system after our server URL no long works?

Thank you.

Alex

Yes, it would be https://northcoastmed.atlassian.net followed by the path of one of the Jira Cloud REST API endpoints, such as /rest/api/3/serverInfo, which would result in a complete request URL of https://northcoastmed.atlassian.net/rest/api/3/serverInfo. Just type that into any web browser and you’ll see that the connection to the API service is working perfectly.

You said words like “our server URL no long works” and “the end of our Server URL” and also “our on prem JIRA system”, which infers your organisation might also have / have had an instance of Jira SERVER or Jira DATA CENTER. I strongly recommend that you liaise with your organisation’s IT Department / Service Desk to better understand what types of Jira you do or don’t have access to.

Have fun!

2 Likes

Thank you Sunnyape for your help and suggestions.

I guess from the wording I’m using, you can tell I barely know anything about REST API or JIRA system. That’s why I really appreciate you taught me another word “endpoints”, which I should be correctly using. I guess my next search would be what all the possible Jira Cloud REST API endpoints are out there, which allow me to pull the Jira card info like “fields.Project.key”, “fields.Project.name”, “fields.Summary” etc.

I was asked to create a report including data from both one on-prem JIRA system and another Cloud based Jira system.

For the on prem JIRA system, I had no problem pulling all the data I need, so I was trying the same way on the Cloud based Jira system and that’s where I got issue, and it seems since 2025, Cloud Jira system doesn’t allow the old way of pulling all the data, but only using /rest/api/3/search/jql. I checked with both our internal on-prem and Cloud Jira admin, and they both suggested that I should try to get help from the vendor. Our Cloud Jira admin also helped to share his screen and showed me that my token never showed up on his admin page and he never saw any traffic from the log.

I’m just a little helpless here, so I’m searching all the options and trying to make up different links that fit our needs then trying them on different connectors like REST Connection Manager and HTTP Connection Managers.

I’m just a blind person trying to cross a river, trying one step after another. For example, in the link in HTTP Connection Manager, when adding &fields=key on the end of JSQL, I get the key (Jira card number) column info in the response, but when using &fields%3Dkey, I lost it, and neither link works in REST Connection Manager. I have no idea why it’s like that, and I found it seems I can not include all 742 Jira cards data in my response no matter if I have &maxResults=5000, as it always has next page token. Also, I cannot draft a link that returns the limited amounts of fields I need unless I add the string &fields=*all.

I’m just feeling when I found something through google that opens one door, there are more doors behind it, so any guidance would be super helpful for our need and for a newbie like me.

Thank you.

Alex

Just a quick update. I think I just found a way of adding more fields that I need by keep adding &fields= into my URL.

I guess my remaining question is that how can I pull all the data filtered by my JQL, as even with &maxResults=5000, I noticed that there are only 100 records loaded to our target MSSQL Server. Is there a way to steer away from the &nextPageToken=, or properly use the &nextPageToken=, as I found the token is constantly changing.

Any guidance would be super helpful for a newbie like me.

Thank you.

Alex

The number of results returned will depend on the number of fields you are returning - as per the docs (if you expand the maxResults parameter:

To manage page size, API may return fewer items per page where a large number of fields or properties are requested. The greatest number of items returned per page is achieved when requesting id or key only.

You have a few options:

  • Reduce the fields you’re returning
  • utilise the nextPageToken to get each subsequent page of results (this is expected to change, see explanation below).
  • Alternatively, if you prefer you could just get the Issue Keys and then use the Bulk Fetch Issues endpoint to manage requesting 100 issues at a time yourself.

Regarding the nextPageToken you would expect the token to change.

Say you are expecting 250 results from your issue search,

On the initial call you’ll get results 1-100, plus a nextPageToken which you can use to get the following results 101-200, plus a nextPageToken for the following page which you can use to get results 201-250 - and this time around there will be no nextPageToken, indicating there are no further results.

I hope this makes sense!

Thank you mpaisley for your help and detailed info.

I was able to utilize the other flag field at the same time (I don’t remember correctly, maybe “isLastPage”) in the for loop to loop through all the records I need.

Coming back and reading your message helps me with better understanding. I will mark your answer as solution.

Thank you all again for your help.

Great to hear it @AlexChen!