# Authentication

The ComplyCube API uses API keys to authenticate all requests. You can view, manage, and rotate your keys from the [API keys page](https://portal.complycube.com/developers).&#x20;

Sandbox environment keys have the prefix `test_` whereas Live environment keys have the prefix `live_`.

{% hint style="info" %}
All API requests must be made over HTTPS. Any requests made over HTTP will fail.
{% endhint %}

{% hint style="warning" %}
Your API keys carry many privileges, so be sure to keep them secure. Do not share your API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
{% endhint %}

#### Example of an authenticated request

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X GET https://api.complycube.com/v1/clients \
     -H 'Authorization: <YOUR_API_KEY>'
```

{% endtab %}

{% tab title="Node.js" %}

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

const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });

const clients = await complycube.client.list();
```

{% endtab %}

{% tab title="Python" %}

```python
from complycube import ComplyCubeClient

cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')
```

{% endtab %}

{% tab title="PHP" %}

```php
use ComplyCube\ComplyCubeClient;

$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');
```

{% endtab %}

{% tab title="C#" %}

```csharp
using ComplyCube.Net;

var client = new ComplyCubeClient("<YOUR_API_KEY>");
```

{% endtab %}
{% endtabs %}
