# How do I get a list of the projects on a gateway?

**URL:** <https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988>\
**Category:** Ignition\
**Created:** [July 28, 2016, 6:53pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988 "2016-07-28T18:53:10Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sfitze](https://avatars.discourse-cdn.com/v4/letter/s/ecccb3/32.png) [@sfitze](https://forum.inductiveautomation.com/u/sfitze)\
**Post date:** [July 28, 2016, 6:53pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/1 "2016-07-28T18:53:10Z")

</div>

I would like to get a list of the projects on a gateway. As a workaround I am using system.net.httpGet() to get the /main/web/home source and using a regex ‘/([^/]+).jnlp’ to strip out the .jnlp file names, which seems a little hackish. Is there a cleaner way?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 28, 2016, 7:31pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/2 "2016-07-28T19:31:27Z")

</div>

There’s no ready to use scripting API for this. You might be able to make something a little cleaner using the web dev module, if you have access to that.

---

<div class="post-metadata">

**Author:** ![cmaynes](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmaynes/32/6852_2.png) [@cmaynes](https://forum.inductiveautomation.com/u/cmaynes)\
**Post date:** [June 29, 2018, 1:47pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/3 "2018-06-29T13:47:26Z")

</div>

```auto
def getProjects():
	import urllib2
	from xml.etree import ElementTree as ET
	projects_xml = urllib2.urlopen('http://10.1.1.81:8088/main/system/projectlist').read()
	projects = ET.fromstring( projects_xml ).findall('client')
	project_names = tuple( ( project.get('name'), project.find('title').text ) 
						for project in projects )
	return project_names

```

---

<div class="post-metadata">

**Author:** ![ghuck](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ghuck/32/8337_2.png) [@ghuck](https://forum.inductiveautomation.com/u/ghuck)\
**Post date:** [November 19, 2018, 2:18am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/4 "2018-11-19T02:18:31Z")

</div>

Were working a expanding are EAM dashboard, and having a build in API for getting all of the projects in a gateway using the gateway network would make life a lot easier as where trying to pulling more and more data into are dashboard. And to use the gateway network you need the project names.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 19, 2018, 2:24am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/5 "2018-11-19T02:24:23Z")

</div>

In the meantime: [Project List - Include hidden projects](http://forum.inductiveautomation.com/t/project-list-include-hidden-projects/12000)

Edit: oops, that method is already posted in this thread.

---

<div class="post-metadata">

**Author:** ![harigobu.gb](https://avatars.discourse-cdn.com/v4/letter/h/b77776/32.png) [@harigobu.gb](https://forum.inductiveautomation.com/u/harigobu.gb)\
**Post date:** [May 26, 2020, 7:52pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/6 "2020-05-26T19:52:46Z")

</div>

Hello Kevin,

This thread was so helpful.  
As we are managing multiple gateways. We were trying to create a automated project list from all gateways with the help of this link ‘[http://hostname:8088/main/system/projectlist](http://10.1.1.81:8088/main/system/projectlist)’ . But when were testing this we observed that  
This xml page has only vision projects list and that too atleast one project resource like vision window/template have to be created in the project to get it listed.  
**But, Is there a way to extract the list of every project in a gateway(either let it be only perspective/only vision/or both/blank project)**

Thanks.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [May 26, 2020, 8:07pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/7 "2020-05-26T20:07:14Z")

</div>

I think you’d need to build something custom using the WebDev module as suggested above.

---

<div class="post-metadata">

**Author:** ![jcaudle](https://avatars.discourse-cdn.com/v4/letter/j/35a633/32.png) [@jcaudle](https://forum.inductiveautomation.com/u/jcaudle)\
**Post date:** [April 6, 2021, 11:45am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/8 "2021-04-06T11:45:26Z")

</div>

Hi Kevin,

Are there developments planned for the EAM? It seems like this is an underdeveloped module that has a lot of administration benefit potential.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [April 6, 2021, 1:23pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/9 "2021-04-06T13:23:13Z")

</div>

We recognize the potential for the EAM module and have discussed a number of features we may implement in the future but in the near term it doesn’t look like the module is going to get much attention aside from bug fixes and some refactoring to improve the foundation. There’s just too much other stuff going on that has been prioritized over EAM features right now.

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [April 6, 2021, 3:48pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/10 "2021-04-06T15:48:56Z")

</div>

## **Get Perspective pages and URLs to make a directory or navigation page** (NOT Vision projects)

If you are on 8.1.4, take a look at the `system.perspective.getProjectInfo` function. This is a new function with this release and it will list URLs and the page the URL references, which is what I've been racking my brain how to accomplish for some time. Here are the release notes: [https://inductiveautomation.com/downloads/releasenotes/8.1.4](https://inductiveautomation.com/downloads/releasenotes/8.1.4) (search for `getProjectInfo()`).

Example (to get a list of objects that contain the URL and primary view):  
`system.perspective.getProjectInfo()['pageConfigs']` returns

```python
[
    {"url": "/", "primaryView": "path/to/view"},
    {"url": "/first", "primaryView": "path/to/view1"},
    {"url": "/second", "primaryView": "path/to/view2"},
    ...
]

```

Here is the documentation page for this function: [https://docs.inductiveautomation.com/display/DOC81/system.perspective.getProjectInfo](https://docs.inductiveautomation.com/display/DOC81/system.perspective.getProjectInfo)

---

<div class="post-metadata">

**Author:** ![chandler](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@chandler](https://forum.inductiveautomation.com/u/chandler)\
**Post date:** [April 6, 2021, 6:20pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/11 "2021-04-06T18:20:18Z")

</div>

This seems to be a pretty simple and clean way of getting a list of the project names via scripting:

```auto
from com.inductiveautomation.ignition.gateway import IgnitionGateway

projectNames = list(IgnitionGateway.get().getProjectManager().projectNames)

```

---

<div class="post-metadata">

**Author:** ![travis.broussard](https://avatars.discourse-cdn.com/v4/letter/t/db5fbb/32.png) [@travis.broussard](https://forum.inductiveautomation.com/u/travis.broussard)\
**Post date:** [May 19, 2022, 5:47pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/12 "2022-05-19T17:47:43Z")

</div>

Hey Chandler, I don’t see a lot of documentation on those objects, even in the SDK documentation. Do you know of any other documentation on these native objects?

Great solution, by the way. Thanks!

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [May 19, 2022, 7:28pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/13 "2022-05-19T19:28:06Z")

</div>

`IgnitionGateway` is intentionally undocumented (it’s an internal class), but the important thing to know is that `IgnitionGateway.get()` gets you an _instance_ that implements the [`GatewayContext`](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.16/com/inductiveautomation/ignition/gateway/model/GatewayContext.html) interface, which you’ll notice _does_ describe the `getProjectManager()` method.

---

<div class="post-metadata">

**Author:** ![chandler](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@chandler](https://forum.inductiveautomation.com/u/chandler)\
**Post date:** [May 19, 2022, 7:34pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/14 "2022-05-19T19:34:27Z")

</div>

I found out about it from another post on the forum a while back, and used the introspect function written by @pturmel to find what was available via IgnitionGateway.

See this for information on the introspect function:

> [@Finding all available methods from a component](https://forum.inductiveautomation.com/t/finding-all-available-methods-from-a-component/9670):
>
> Hello, I was wondering if there is a way to fetch all methods available from a component. In this topic, I can see a setVerticalScrollBarPolicy() function but I have absolutely no idea about where it ccomes from. [Subject: Check for vertical scroll bar](https://www.inductiveautomation.com:443/forum/viewtopic.php?p=48364#p48364) I’ve looked a little further and with the following code, i managed to get some of a component methods, but obviously not all as I can not find the setVerticalScrollBarPolicy() function in the returned array. powerTable = event.source.parent.ge…

---

<div class="post-metadata">

**Author:** ![John\_S1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@John\_S1](https://forum.inductiveautomation.com/u/John_S1)\
**Post date:** [June 1, 2022, 5:12am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/15 "2022-06-01T05:12:49Z")

</div>

Hi, when I check this its showing error. Any idea about did they changed this to some other area as that import Ignition gateway is NA in com.inductiveautomation.ignition.gateway

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 1, 2022, 2:52pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/16 "2022-06-01T14:52:24Z")

</div>

Are you running the code in the script console?

`IgnitionGateway` will only work _in the gateway scope_.

---

<div class="post-metadata">

**Author:** ![John\_S1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@John\_S1](https://forum.inductiveautomation.com/u/John_S1)\
**Post date:** [June 2, 2022, 3:31am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/17 "2022-06-02T03:31:28Z")

</div>

Yes, I was running the script in script console. Can you give me little more details please.  
[http://files.inductiveautomation.com/sdk/javadoc/ignition79/795/overview-summary.html](http://files.inductiveautomation.com/sdk/javadoc/ignition79/795/overview-summary.html)

How to use this? when I checked the script that you ha provided in the above webpage its not showing the ignition gateway to import.  
Am I missing something. Can you please elaborate, how to read that doc.?

---

<div class="post-metadata">

**Author:** ![chandler](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@chandler](https://forum.inductiveautomation.com/u/chandler)\
**Post date:** [June 6, 2022, 9:52pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/18 "2022-06-06T21:52:07Z")

</div>

As Paul mentioned a few posts up, the IgnitionGateway class is not documented because it is an internal class. He also mentioned that you can only import it in the gateway scope. Your script console is the designer scope. Scripts running on the gateway are the only place you will be able to import it. Examples of scripts that run in the gateway scope are tag change event scripts, scripts in perspective projects, and gateway event scripts.

---

<div class="post-metadata">

**Author:** ![John\_S1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@John\_S1](https://forum.inductiveautomation.com/u/John_S1)\
**Post date:** [June 8, 2022, 11:36am UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/19 "2022-06-08T11:36:45Z")

</div>

Can you please provide me with a little more information. I need name , title and description. How I can get those details by using this.??

---

<div class="post-metadata">

**Author:** ![tupanaster](https://avatars.discourse-cdn.com/v4/letter/t/5daacb/32.png) [@tupanaster](https://forum.inductiveautomation.com/u/tupanaster)\
**Post date:** [July 21, 2022, 12:23pm UTC](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988/20 "2022-07-21T12:23:03Z")

</div>

For some reason Page Title is not included in system.perspective.getProjectInfo(). In pageConfigs I can get url and primaryView but not the title.

Anyone knows why that was leaved out?

[Next page](https://forum.inductiveautomation.com/t/how-do-i-get-a-list-of-the-projects-on-a-gateway/11988.md?page=2)
