> For the complete documentation index, see [llms.txt](https://docs.nodies.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nodies.app/application-guide/creating-and-managing-your-workspace/api-keys.md).

# API Keys

<figure><img src="/files/tUf9dt7AD2jzdUawLpxN" alt=""><figcaption></figcaption></figure>

The API Keys tab manages the keys associated with your workspace.

* Each new workspace receives one system-generated key
* All workspaces can have multiple API keys, but must always have at least one active key
* Users can add and delete API keys, as well as whitelisting domains and IPv4 addresses if they so choose.&#x20;

<figure><img src="/files/u1Wv75MN9fMG0pG9KwtU" alt="" width="563"><figcaption></figcaption></figure>

Every request requires an API key.

You may authenticate in two ways:

1. Embed the key in the URL:

{% tabs fullWidth="false" %}
{% tab title="Curl" %}

```bash
curl "https://lb.nodies.app/v2/<network-name>?apikey=<your-api-key>" \
-X POST \
-H "Content-Type: application/json" \
```

{% endtab %}

{% tab title="Python" %}

```python
from web3 import Web3
import requests

# Define the Web3 provider with API key in the URL
client = Web3(Web3.HTTPProvider('https://lb.nodies.app/v2/<network-name>?apikey=<api_key_here>'))
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
import { Web3, HttpProvider } from 'web3';

// Define Web3 client with API key in the URL
const client = new Web3(new HttpProvider('https://lb.nodies.app/v2/<network-name>?apikey=<your-api-key>'));
```

{% endtab %}
{% endtabs %}

2. Pass the key as a header:

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

```bash
curl https://lb.nodies.app/v2/<network-name> \
-X POST \
-H "x-api-key: <api_key_value>" \
-H "Content-Type: application/json" \
```

{% endtab %}

{% tab title="Python" %}

```python
from web3 import Web3
import requests

#define a http session with an api key
http_session = requests.Session()
http_session.update({'x-api-key': 'api_key_here'})

#defined the web3 provider
client = Web3.HTTPProvider('https://lb.nodies.app/v2/<network-name>')
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
import { Web3, HttpProvider } from 'web3';

// define web3 client
const client = new Web3(new HttpProvider('https://lb.nodies.app/v2/<network-name>', {
    providerOptions: {
        headers: {
            "x-api-key": "api_key_value"
        }
    }
}));
```

{% endtab %}
{% endtabs %}
