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

# Authentication

> Configure your Paubox API credentials for the Perl SDK.

## Obtain your credentials

The Email API client requires two credentials:

* **API key**: a secret token that authenticates your requests
* **Username**: your Paubox API endpoint username (not your login email)

Both are available in the [Paubox dashboard](https://next.paubox.com) under **API Credentials**.

## Create a config.cfg file

Create a `config.cfg` file in your project directory:

```
API_KEY = YOUR_API_KEY
API_USERNAME = YOUR_USERNAME
```

The SDK reads this file automatically via `Config::General` when you instantiate the client — no constructor arguments are needed:

```perl theme={null}
my $service = Paubox_Email_SDK->new();
```

The constructor dies immediately if `API_KEY` or `API_USERNAME` is missing from the config file, so credential errors are caught at startup.

The SDK sets the `Authorization` header on every request:

```
Authorization: Token token=YOUR_API_KEY
```

## Forms client

`Paubox_Forms_SDK` requires no credentials. Form submissions are associated with the form ID, not an API key.

```perl theme={null}
my $forms = Paubox_Forms_SDK->new();
```

## Security notes

* Do not commit `config.cfg` to source control. Add it to your `.gitignore`.
* The SDK does not expose credentials in error messages or logs.
