# ComplyCube Node.js Library

[![Version](https://img.shields.io/npm/v/@complycube/api)](https://www.npmjs.org/package/@complycube/api)
[![Downloads](https://img.shields.io/npm/dm/@complycube/api)](https://www.npmjs.com/package/@complycube/api)
[![Dependencies](https://img.shields.io/librariesio/release/npm/@complycube/api?color=brightgreen)](https://libraries.io/npm/@complycube%2Fapi)

The official Node.js library for integrating with the ComplyCube API.

[ComplyCube](https://www.complycube.com) enables you to automate your AML/KYC workflows effortlessly.

Documentation can be found at <https://docs.complycube.com>.

## Installation

Using npm:

```sh
npm install @complycube/api
```

Using Yarn:

```sh
yarn add @complycube/api
```

## Getting Started

Require the package:

```js
const { ComplyCube } = require("@complycube/api");
```

Configure with your API key:

```js
const complycube = new ComplyCube({
  apiKey: process.env.COMPLYCUBE_API_KEY
});
```

Using with `async`/`await` (in an `async function`):

```js
try {
  const client = await complycube.client.create({
    type: "person",
    email: "jane.doe@example.com",
    personDetails: {
      firstName: "Jane",
      lastName: "Doe"
    }
  });

  const check = await complycube.check.create(client.id, {
    type: "standard_screening_check"
  });

  return check;
} catch (error) {
  if (error instanceof ComplyCubeApiError) {
    // An error response was returned by the ComplyCube API.
    console.log(error.message);
    console.log(error.type);
  } else {
    console.log(error.message);
  }
}
```

Using with promises:

```js
complycube.client
  .create({
    type: "person",
    email: "jane.doe@example.com",
    personDetails: {
      firstName: "Jane",
      lastName: "Doe"
    }
  })
  .then(client =>
    complycube.check.create(client.id, {
      type: "standard_screening_check"
    })
  )
  .then(check =>
    // Handle successfully created check.
  )
  .catch(error => {
    // Handle error.
  });
```

## Response format

All responses will be JavaScript objects.

```js
const client = await complycube.client.create({
  type: "person",
  email: "jane.doe@example.com",
  personDetails: {
    firstName: "Jane",
    lastName: "Doe"
  }
});

console.log(client);
{
  "id": "<CLIENT_ID>",
  "type": "person",
  "email": "jane.doe@example.com",
  "personDetails": {
      "firstName": "Jane",
      "lastName": "Doe"
  },
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z"
}
```

## More Documentation

More documentation and code examples can be found at <https://docs.complycube.com>.

Further information on ComplyCube can be found at <https://www.complycube.com>.
