# Add permissions to API keys

**URL:** <https://forums.balena.io/t/add-permissions-to-api-keys/230775>\
**Category:** openBalena\
**Created:** [January 5, 2021, 10:34am UTC](https://forums.balena.io/t/add-permissions-to-api-keys/230775 "2021-01-05T10:34:12Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![bversluijs](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/bversluijs/32/3954_2.png) [@bversluijs](https://forums.balena.io/u/bversluijs)\
**Post date:** [January 5, 2021, 2:40pm UTC](https://forums.balena.io/t/add-permissions-to-api-keys/230775/7 "2021-01-05T14:40:49Z")

</div>

I’ve checked how the `tunnel` command works, and I’ve been able to come up with something that works exactly as I want!

I’m using Node.js, so I’ve used the Node.js Balena SDK for it. This is how I’ve done it:

```auto
import { getSdk } from 'balena-sdk';
import request from 'request';

const balenaInstance = getSdk({ apiUrl: 'api.<open-balena-domain>' });
await balenaInstance.auth.login(credentials);

const [whoami, token] = Promise.all([
  balenaInstance.auth.whoami(),
  balenaInstance.auth.getToken()
]);

await new Promise((resolve, reject) => {
  request({
    uri: `http://<device-uuid>.balena:<device-port>',
    tunnel: true,
    proxy: `http://${whoami}:${token}@vpn.<open-balena-domain>:3128`
  }, (err, response) => {
    if (err) {
      reject(err);
    } else {
      resolve(response);
    }
  });
});

```

* * *

I don’t know if this works for Balena Cloud though, because of permissions.

---

_[View the full topic](https://forums.balena.io/t/add-permissions-to-api-keys/230775)._
