# API for querying issues from multiple projects

**URL:** <https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271>\
**Category:** Jira Server\
**Created:** [August 15, 2019, 8:22pm UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271 "2019-08-15T20:22:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![vladbilyk](https://avatars.discourse-cdn.com/v4/letter/v/b4bc9f/32.png) [@vladbilyk](https://community.developer.atlassian.com/u/vladbilyk)\
**Post date:** [August 15, 2019, 8:22pm UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/1 "2019-08-15T20:22:34Z")

</div>

I need to query all issues from multiple Jira projects and prepare statistics in my custom plugin. What is preferable API for doing it? I’ve found SearchService, but it requires ApplicationUser instance to process searching. Also I see that Active Objects API working with DB, but as documentation says here [Active Objects](https://developer.atlassian.com/server/framework/atlassian-sdk/active-objects/) “_A plugin can access only the data that belongs to it, not data belonging to other plugins or to the host products._” and AO examples persist custom objects, but not issues. Can issues be queried via AO?

Can I schedule some sort of background job to be processed inside Jira Server (updating statistics etc.)? Or should I use Jira REST API instead and do processing outside Jira Server and then grab the result from external API?

---

<div class="post-metadata">

**Author:** ![sfbehnke](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/sfbehnke/32/34486_2.png) [@sfbehnke](https://community.developer.atlassian.com/u/sfbehnke)\
**Post date:** [August 15, 2019, 10:16pm UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/2 "2019-08-15T22:16:26Z")

</div>

You should use SearchService, proper pagination, and the method [searchOverrideSecurity(ApplicationUser applicationUser, Query query, PagerFilter pagerFilter)](https://docs.atlassian.com/software/jira/docs/api/8.3.2/com/atlassian/jira/bc/issue/search/SearchService.html#searchOverrideSecurity-com.atlassian.jira.user.ApplicationUser-com.atlassian.query.Query-com.atlassian.jira.web.bean.PagerFilter-).

I’d probably create a fake user by calling ApplicationUsers.from(new ImmutableUser(-1, userNameOrKey, userNameOrKey, “?”, false)) which is how the UserManager class creates unknown users.

I believe this approach would be robust.

---

<div class="post-metadata">

**Author:** ![vladbilyk](https://avatars.discourse-cdn.com/v4/letter/v/b4bc9f/32.png) [@vladbilyk](https://community.developer.atlassian.com/u/vladbilyk)\
**Post date:** [August 16, 2019, 8:29am UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/3 "2019-08-16T08:29:01Z")

</div>

@sfbehnke thanks, I’ll try this approach.

---

<div class="post-metadata">

**Author:** ![a.belostotskiy](https://avatars.discourse-cdn.com/v4/letter/a/958977/32.png) [@a.belostotskiy](https://community.developer.atlassian.com/u/a.belostotskiy)\
**Post date:** [August 16, 2019, 9:46am UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/4 "2019-08-16T09:46:17Z")

</div>

I think, you should be pass null to user parameter.

---

<div class="post-metadata">

**Author:** ![vladbilyk](https://avatars.discourse-cdn.com/v4/letter/v/b4bc9f/32.png) [@vladbilyk](https://community.developer.atlassian.com/u/vladbilyk)\
**Post date:** [August 16, 2019, 10:41am UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/5 "2019-08-16T10:41:51Z")

</div>

@a.belostotskiy thanks, searchOverrideSecurity works fine with null-user

---

<div class="post-metadata">

**Author:** ![sfbehnke](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/sfbehnke/32/34486_2.png) [@sfbehnke](https://community.developer.atlassian.com/u/sfbehnke)\
**Post date:** [August 16, 2019, 4:10pm UTC](https://community.developer.atlassian.com/t/api-for-querying-issues-from-multiple-projects/31271/6 "2019-08-16T16:10:27Z")

</div>

Thanks, I got too complicated really fast didn’t I. Thanks for the solution. 😃
