> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runalloy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Node.js SDK

## alloy-node

This is a wrapper to interact with Alloy Automation's APIs. This library supports both [Alloy Embedded](https://runalloy.com/embedded/) and [Alloy Unified API](https://runalloy.com/unified-api/).

## Documentation

Visit the [Alloy Docs site](https://docs.runalloy.com) for more information on how to get started with Alloy APIs.

## Installation

To get started, install `alloy-node` using npm as seen below:

```bash theme={null}
npm install alloy-node --save
```

Or using yarn:

```bash theme={null}
yarn add alloy-node
```

## Usage

The package needs to be configured with your account's API key, which is available in the Alloy Dashboard under settings. You must supply the API key with each instantiation of the module.

To set up Alloy's Embedded iPaaS, use the code snippet below:

```javascript JavaScript theme={null}
import { Embedded } from "alloy-node";

const apiClient = new Embedded("MY_API_KEY...);
```

### Creating a User

Similar to Unified API, in order to make API calls to Alloy Embedded, you must first [create a user](/reference/embedded/create-a-user). To create a user in Embedded, call the `User.createUser()` method as seen below. You must pass a *unique* username.

```javascript JavaScript theme={null}
let bodyData = {
  username: `sara456`,
};
let data = await apiClient.User.createUser(body);
```

Once you've created a user, you'll need to `identify` that user each time you make a call that requires a `userId`. Fortunately, the `identify()` method exists for this purpose.

Pass a `userId` to the `identify()` method as seen below:

```javascript JavaScript theme={null}
await apiClient.identify("YOUR_USER_ID");
```

### Obtain a workflowId

Before you can make API calls to Alloy Embedded, you will need to install a workflow using our frontend SDK. You can read more [here](/embedded/frontend-javascript-sdk).

### Making requests to Alloy Embedded SDK

Once you have a workflowId, you can make requests

```javascript JavaScript theme={null}
await apiClient.identify("YOUR_USER_ID");
let data = await apiClient.Workflows.list();
```

This call will return all workflows relevant to the specified user.
