# Connect Ignition to a web datasource through its API

**URL:** <https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889>\
**Category:** Ignition\
**Created:** [October 31, 2022, 6:10pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889 "2022-10-31T18:10:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Robert\_Fabian](https://avatars.discourse-cdn.com/v4/letter/r/ed8c4c/32.png) [@Robert\_Fabian](https://forum.inductiveautomation.com/u/Robert_Fabian)\
**Post date:** [October 31, 2022, 6:10pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/1 "2022-10-31T18:10:46Z")

</div>

I am looking to connect a dashboard in Ignition to the MaintainX CMMS system through its API ([MaintainX – Rest API v1](https://api.getmaintainx.com/v1/docs)). I would assume I would need to create a driver in Ignition to connect?  
I already have the connection setup in Power Query (Here is a sample of the code)

let  
Source = Csv.Document(  
Web.Contents(  
"[https://app.getmaintainx.com/api/rest/v1/workorders/workorders.csv](https://app.getmaintainx.com/api/rest/v1/workorders/workorders.csv)",  
[Headers = [Authorization = "Bearer " & Token]]  
),  
[Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]  
),  
#"WorkOrders Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),  
#"WorkOrders Change Type" = Table.TransformColumnTypes(  
#"WorkOrders Promoted Headers",  
{  
{"ID", Int64.Type},  
{"Title", type text},  
{"Status", type text},  
{"Priority", type text},  
{"Description", type text},  
{"URL", type text},  
{"Global ID", Int64.Type},  
{"Assigned to", type text},  
{"Teams Assigned to", type text},  
{"Requested by", type text},  
{"Requested on", type datetime},  
{"Created by", type text},  
{"Created on", type datetime} ......

Can anyone help ?

---

<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:** [October 31, 2022, 6:13pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/2 "2022-10-31T18:13:04Z")

</div>

You might be able to get what you need with an HTTP binding:  
[HTTP Bindings in Perspective - Ignition User Manual 8.1 - Ignition Documentation](https://docs.inductiveautomation.com/display/DOC81/HTTP+Bindings+in+Perspective), if you're using Perspective.

Or, for more control, you can use `system.net.httpClient`:  
[https://docs.inductiveautomation.com/display/DOC81/system.net.httpClient](https://docs.inductiveautomation.com/display/DOC81/system.net.httpClient)

---

<div class="post-metadata">

**Author:** ![Robert\_Fabian](https://avatars.discourse-cdn.com/v4/letter/r/ed8c4c/32.png) [@Robert\_Fabian](https://forum.inductiveautomation.com/u/Robert_Fabian)\
**Post date:** [October 31, 2022, 6:18pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/3 "2022-10-31T18:18:12Z")

</div>

Thank you for your response Paul. We don't have a resource to achieve this. Is this something we could contract for ?

---

<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:** [October 31, 2022, 6:44pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/4 "2022-10-31T18:44:37Z")

</div>

That's up to you. If you contact our Sales team, they'll probably be able to recommend you some integrators.

---

<div class="post-metadata">

**Author:** ![Robert\_Fabian](https://avatars.discourse-cdn.com/v4/letter/r/ed8c4c/32.png) [@Robert\_Fabian](https://forum.inductiveautomation.com/u/Robert_Fabian)\
**Post date:** [October 31, 2022, 6:55pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/5 "2022-10-31T18:55:16Z")

</div>

Thanks Paul. We have Vision but not Perspective.  
Is a driver created by using system.net.httpClient or are the objects put directly into a Project?  
Thanks again for your help

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [October 31, 2022, 7:02pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/6 "2022-10-31T19:02:39Z")

</div>

If you only have Vision then you'll most likely need to use the more control option.

> [@paul-griffith](#):
>
> Or, for more control, you can use `system.net.httpClient`:  
> [https://docs.inductiveautomation.com/display/DOC81/system.net.httpClient](https://docs.inductiveautomation.com/display/DOC81/system.net.httpClient)

---

<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:** [October 31, 2022, 7:07pm UTC](https://forum.inductiveautomation.com/t/connect-ignition-to-a-web-datasource-through-its-api/65889/7 "2022-10-31T19:07:23Z")

</div>

'Driver' is typically used in Ignition to refer to a device driver, e.g. a source of tags.

There's no generic way to do that for an arbitrary HTTP service. So if you want the results of your API call to be written out to tags for use elsewhere in the system, the _only_ way to do that currently is with scripting.  
If you truly want a 'device driver', you will need a custom module developed using our SDK. That requires a significant amount of engineering time from someone well versed in Java - scripting will be much more approachable.
