# Extracting info from API

**URL:** <https://discourse.nodered.org/t/extracting-info-from-api/16884>\
**Category:** General\
**Created:** [19 October 2019 13:10 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884 "2019-10-19T13:10:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![surfershort](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@surfershort](https://discourse.nodered.org/u/surfershort)\
**Post date:** [19 October 2019 13:10 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/1 "2019-10-19T13:10:12Z")

</div>

Hi i need to extract some data from an API here [http://data.channelcoast.org/observations/waves/latest?key=6cefd36d8e12a4dead4cf06d4dbd09c0](http://data.channelcoast.org/observations/waves/latest?key=6cefd36d8e12a4dead4cf06d4dbd09c0) using a HTTP request i need to get the data of the latest wave height (ms:hs) for Porthleven - i then want to control an RGB LED thats lights blue if height is below 2m, green if its between 3 and 4 and red if its over 4 - i can probably manage the LED bit with some functions but i cant seem to access the path for that value...can anyone help me?

---

<div class="post-metadata">

**Author:** ![Paul-Reed](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/paul-reed/32/66906_2.png) [@Paul-Reed](https://discourse.nodered.org/u/Paul-Reed)\
**Post date:** [19 October 2019 13:44 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/2 "2019-10-19T13:44:03Z")

</div>

@surfershort - is that your personal API key posted above?  
If so, it's generally not a good idea to publicly reveal it.

---

<div class="post-metadata">

**Author:** ![ukmoose](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ukmoose/32/13_2.png) [@ukmoose](https://discourse.nodered.org/u/ukmoose)\
**Post date:** [19 October 2019 13:47 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/3 "2019-10-19T13:47:06Z")

</div>

it looks like it is comma separated

so i would start by using a http request node to get the data into Node-RED

Then try a csv node to get it into a javascript object.

Have you read the working with messages page in the docs?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [19 October 2019 14:25 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/4 "2019-10-19T14:25:27Z")

</div>

When you output the http node to an xml node and feed it into a function node:

```auto
g = msg.payload["wfs:FeatureCollection"]["gml:featureMember"]
var results = [];

var toSearch = "Porthleven";

for(var i=0; i<g.length; i++) {
  for(let key in g[i]) {
    if(g[i]['ms:waves'][0]['ms:sensor'][0].indexOf(toSearch)!=-1) {
      results.push(g[i]);
    }
  }
}
return {payload:{results:results,sensor:results[0]["ms:waves"][0]["ms:sensor"][0],hs:results[0]["ms:waves"][0]["ms:hs"][0]}}

```

Output:

 ![03](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/2/2c19f472a44470cdfafd9e635c948da697f8c7ce.jpeg)

Try this flow:

```auto
[{"id":"eaae278b.53071","type":"inject","z":"24c36d28.96ea9a","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":216,"y":192,"wires":[["c2315666.b13f3"]]},{"id":"31f9a814.eaa6","type":"function","z":"24c36d28.96ea9a","name":"","func":"g = msg.payload[\"wfs:FeatureCollection\"][\"gml:featureMember\"]\n\nvar results = [];\n\nvar toSearch = \"Porthleven\";\n\nfor(var i=0; i<g.length; i++) {\n for(let key in g[i]) {\n if(g[i]['ms:waves'][0]['ms:sensor'][0].indexOf(toSearch)!=-1) {\n results.push(g[i]);\n }\n }\n}\nreturn {payload:{results:results,sensor:results[0][\"ms:waves\"][0][\"ms:sensor\"][0],hs:parseFloat(results[0][\"ms:waves\"][0][\"ms:hs\"][0])}}\n\n//payload[\"wfs:FeatureCollection\"][\"gml:featureMember\"][0][\"ms:waves\"][0][\"ms:sensor\"][0]","outputs":1,"noerr":0,"x":674,"y":192,"wires":[["5c39eba7.a567ac"]]},{"id":"c2315666.b13f3","type":"http request","z":"24c36d28.96ea9a","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"http://data.channelcoast.org/observations/waves/latest?key=6cefd36d8e12a4dead4cf06d4dbd09c0","tls":"","persist":false,"proxy":"","authType":"","x":382,"y":192,"wires":[["9aa5a06.3bc9de"]]},{"id":"9aa5a06.3bc9de","type":"xml","z":"24c36d28.96ea9a","name":"","property":"payload","attr":"","chr":"","x":530,"y":192,"wires":[["31f9a814.eaa6"]]},{"id":"5c39eba7.a567ac","type":"debug","z":"24c36d28.96ea9a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":838,"y":192,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![surfershort](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@surfershort](https://discourse.nodered.org/u/surfershort)\
**Post date:** [19 October 2019 14:46 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/5 "2019-10-19T14:46:28Z")

</div>

[quote="bakman2, post:4, topic:16884"]

```auto
[{"id":"eaae278b.53071","type":"inject","z":"24c36d28.96ea9a","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":216,"y":192,"wires":[["c2315666.b13f3"]]},{"id":"31f9a814.eaa6","type":"function","z":"24c36d28.96ea9a","name":"","func":"g = msg.payload[\"wfs:FeatureCollection\"][\"gml:featureMember\"]\n\nvar results = [];\n\nvar toSearch = \"Porthleven\";\n\nfor(var i=0; i<g.length; i++) {\n for(let key in g[i]) {\n if(g[i]['ms:waves'][0]['ms:sensor'][0].indexOf(toSearch)!=-1) {\n results.push(g[i]);\n }\n }\n}\nreturn {payload:{results:results,sensor:results[0][\"ms:waves\"][0][\"ms:sensor\"][0],hs:parseFloat(results[0][\"ms:waves\"][0][\"ms:hs\"][0])}}\n\n//payload[\"wfs:FeatureCollection\"][\"gml:featureMember\"][0][\"ms:waves\"][0][\"ms:sensor\"][0]","outputs":1,"noerr":0,"x":674,"y":192,"wires":[["5c39eba7.a567ac"]]},{"id":"c2315666.b13f3","type":"http request","z":"24c36d28.96ea9a","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"http://data.channelcoast.org/observations/waves/latest?key=6cefd36d8e12a4dead4cf06d4dbd09c0","tls":"","persist":false,"proxy":"","authType":"","x":382,"y":192,"wires":[["9aa5a06.3bc9de"]]},{"id":"9aa5a06.3bc9de","type":"xml","z":"24c36d28.96ea9a","name":"","property":"payload","attr":"","chr":"","x":530,"y":192,"wires":[["31f9a814.eaa6"]]},{"id":"5c39eba7.a567ac","type":"debug","z":"24c36d28.96ea9a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":838,"y":192,"wires":[]}]

```

[/quote]Hi Paul sorry its just the demo one from here [https://www.channelcoast.org/ccoresources/api/](https://www.channelcoast.org/ccoresources/api/)

Thanks

---

<div class="post-metadata">

**Author:** ![surfershort](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@surfershort](https://discourse.nodered.org/u/surfershort)\
**Post date:** [19 October 2019 14:47 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/6 "2019-10-19T14:47:44Z")

</div>

Amazing! Thanks man! Perfect 🙂

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [19 October 2019 15:03 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/7 "2019-10-19T15:03:59Z")

</div>

nice, could you mark it solved under my "solution" ?

---

<div class="post-metadata">

**Author:** ![Paul-Reed](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/paul-reed/32/66906_2.png) [@Paul-Reed](https://discourse.nodered.org/u/Paul-Reed)\
**Post date:** [19 October 2019 15:39 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/8 "2019-10-19T15:39:47Z")

</div>

> [@bakman2](#):
>
> could you mark it solved under my "solution" ?

Is it me, or has the option to mark a post as the solution disappeared??

Edit - New post created ['Mark a post as solution' missing](https://discourse.nodered.org/t/mark-a-post-as-solution-missing/16895)

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [19 October 2019 15:54 UTC](https://discourse.nodered.org/t/extracting-info-from-api/16884/9 "2019-10-19T15:54:53Z")

</div>

You only see it for your own topics i think ?
