# Getting started

## Installation

### For a new project

1. Initialize with Yarn or npm:<br>

   ```bash
   yarn init
   # or
   npm init
   ```
2. Add the library to the project:<br>

   ```sh
   npm i @ubidots/ubidots-javascript-library --save-dev
   # or
   yarn add @ubidots/ubidots-javascript-library -D
   ```

### For existing projects <a href="#for-existing-projects" id="for-existing-projects"></a>

Go to the project's root directory and run:

```sh
npm i @ubidots/ubidots-javascript-library --save-dev
# or
yarn add @ubidots/ubidots-javascript-library -D
```

## Importing the library

Depending on whether your project uses CommonJS or ES Modules, import the library as follows:

### CommonJS <a href="#commonjs" id="commonjs"></a>

```javascript
const { Ubidots } = require('@ubidots/ubidots-javascript-library');
```

### ES Modules <a href="#es-modules" id="es-modules"></a>

```typescript
import { Ubidots } from '@ubidots/ubidots-javascript-library';
```

## Usage

```javascript
// Uncomment to import the library using the correct syntax as outlined above
// const { Ubidots } = require('@ubidots/ubidots-javascript-library');
// or
// import { Ubidots } from '@ubidots/ubidots-javascript-library';

// Set custom domain
// Do not call this method if you want to use the default Ubidots host.
// Ubidots.setBaseUrl('custom-domain');

// Authenticate with the API
Ubidots.authenticate('<ubidots-token>');

// Get first 100 devices from the account
Ubidots.devices.get().then(devices => {
  // Prints an array of Device objects
  console.log(devices);

  // YOUR LOGIC OVER THESE 100 DEVICES
});
```

{% hint style="info" %}
To use this SDK in the HTML Canvas widget, refer to its [dedicated page.](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library/api)
{% endhint %}
