# How to do http request from contrib node

**URL:** <https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769>\
**Category:** General\
**Created:** [31 December 2019 06:27 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769 "2019-12-31T06:27:33Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kiran](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kiran/32/27855_2.png) [@kiran](https://discourse.nodered.org/u/kiran)\
**Post date:** [31 December 2019 06:27 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/1 "2019-12-31T06:27:33Z")

</div>

Is there is any library available for HTTP request in contrib node.

---

<div class="post-metadata">

**Author:** ![BartButenaers](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bartbutenaers/32/10476_2.png) [@BartButenaers](https://discourse.nodered.org/u/BartButenaers)\
**Post date:** [31 December 2019 08:13 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/2 "2019-12-31T08:13:05Z")

</div>

Hi Kiran,  
I assume you are developing your own custom node, and you want to do a http call on the server side. Then have a look at the [request](https://www.npmjs.com/package/request) library.  
Bart

---

<div class="post-metadata">

**Author:** ![kiran007](https://avatars.discourse-cdn.com/v4/letter/k/74df32/32.png) [@kiran007](https://discourse.nodered.org/u/kiran007)\
**Post date:** [31 December 2019 10:16 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/3 "2019-12-31T10:16:37Z")

</div>

Hi BartButenaer

Thanks for your help. So as per your suggestion first I need install request library right ?  
So now custom node depends on request library  
If user haven't request library custom node will not work ?  
Thanks  
Kiran

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [31 December 2019 10:20 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/4 "2019-12-31T10:20:42Z")

</div>

> [@kiran007](#):
>
> If user haven't request library custom node will not work ?

If you are making a custom node, then your node will have a package.json file that lists the npm modules it depends on - such as the `request` module.

---

<div class="post-metadata">

**Author:** ![BartButenaers](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bartbutenaers/32/10476_2.png) [@BartButenaers](https://discourse.nodered.org/u/BartButenaers)\
**Post date:** [31 December 2019 10:59 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/5 "2019-12-31T10:59:59Z")

</div>

You can always have a look at one of the existing http request related contributions, to have an example of what Nick has just explained...

For example the **node-red-contrib-http-request** node has the following two dependencies in its [package.json](https://github.com/spawnrider/node-red-contrib-http-request/blob/master/package.json) file:

```auto
  "dependencies": {
    "request": "^2.74.0",
    "mustache": "^2.2.1"
  },

```

As a result, the request-library will be downloaded and installed automatically (when users install that custom node).

In this [document](https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004) you can read about the semantic versioning syntax (for [major, minor, patch] ), which you can use in your package.json file dependencies section. E.g. in the above package.json file they have used `^` , which means a [caret range](https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004): the contribution needs **minimal** version 2.74.0 but all **higher** 2.x.x versions are allowed. But it _doesn't_ allow a higher **major** version 3.x.x because major version might break backwards compatibility (so it might cause this contribution to fail).

That is what I understand from it ...

---

<div class="post-metadata">

**Author:** ![kiran](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kiran/32/27855_2.png) [@kiran](https://discourse.nodered.org/u/kiran)\
**Post date:** [6 January 2020 11:29 UTC](https://discourse.nodered.org/t/how-to-do-http-request-from-contrib-node/19769/6 "2020-01-06T11:29:10Z")

</div>

Thanks a lot!

That's solve my problem!
