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

# Setting Up Authorization using an API Key

<Badge icon="arrow-left" color="gray">[Back to App Settings](/ai-for-service/app-settings)</Badge>

An API key can act as both a unique identifier and a secret token for identification and authorization, providing a set of access rights on the associated API. Instead of prompting the end-user for both a username and password, the user is prompted only for an API key when configuring the assistant.

To use the API Key **Authorization Type**, you must first register an account with the web application and then generate an API Key for that application.

***

## Configuring API Key Authorization

1. Open the assistant for which you want to configure an Authorization profile.

2. From the left menus, click **App Settings**, then select **Dev Tools > Authorization Profiles**.

3. Click **New** to open the **New Authorization Mechanism** dialog.

   <img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/basic-auth-img2.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=3171e6b95db2664dca1f20db7b95c4e0" alt="Auth profiles - Add" width="1571" height="746" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/basic-auth-img2.png" />

4. In the **Authorization Type** drop-down list, select **Api Key**.

   <img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img2.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=0b98329d13d38b81b9a8ec53bea5e48f" alt="Auth type - API Key" width="656" height="1024" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img2.png" />

***

## Defining Tenancy

If required, in the **Subdomain** section, select **Yes** if the base URL for a web application or user interface uses a tenant name in the URL.

For example, `platform` is the tenant organization for a web service that uses subdomain-based tenants, such as `www.platform.example.com`.

***

## Adding Form Fields

If the default username and password fields don't meet your needs, you can add new fields displayed to the end-user by adding authorization IDP form fields. Click **Add Form Fields** to add fields.

The following table describes the fields used to define an authorization IDP form field.

| FIELD NAME     | DESCRIPTION                                                                                                                                                                         |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Title of Field | Specify the name of the field displayed to the end-user in the authentication dialog.                                                                                               |
| Field Key      | The value represents the end-user input value to the authenticating service.                                                                                                        |
| Help Hint      | The help text displayed in the field to describe what should be entered.                                                                                                            |
| Field Type     | When **Advanced Options** is selected, specify the type of field displayed in the end-user interface to collect user input for the **Field Key**, one of: **Textbox**, **Password** |
| Mandatory      | When **Advanced Options** is selected, select if the end-user must define this field to complete authentication.                                                                    |
| Data Type      | When **Advanced Options** is selected, specify the type of data expected as input from the end-user, for example, **String**.                                                       |
| Visibility     | When **Advanced Options** is selected, specify if the authentication field should be visible, hidden, or displayed as read-only.                                                    |

<img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img3.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=3ef1a4d0643c05f7a312ffa9f6421502" alt="Adding Form Fields" width="699" height="840" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img3.png" />

***

## Adding Authorization Fields

By default, authorization fields are configured as part of the header of the request message. If your request needs additional authorization fields or the expected authorization is not part of the header (for example, social security number or PIN), click **Add** in the **Authorization Fields** section and define the fields.

<img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img4.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=f7464d5ec1f22b3631023717775ae1af" alt="Adding Authorization fields" width="692" height="319" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img4.png" />

1. In the **Field Type** field, select one of the following depending on where in the request message the authorization fields are required:
   * **Header**: The assistant expects the authorization fields as part of the header of the request.
   * **Payload**: The assistant expects the authorization fields as part of the content of the body of the request.
   * **Query String**: The assistant expects the authorization fields as a query in the body of the request.
   * **Path Param**: The assistant expects the authorization fields as part of the URL path for the request.

2. In the **Field Key** field, enter the name of the field for the selected **Field Type**.

3. In the **Field Value** field, enter the value for the **Field Key** specified.

4. Click **Add**. The new authorization field is added in the **Authorization Fields** section.

To add additional authorization fields, click **Add** in the **Authorization Fields** section.

***

## Authorization Check URL

In the **Authorization Check URL** field, optionally define a URL to test the authentication settings from the Platform before deploying the AI Agent. You can use dynamic fields, path parameter fields, query fields, and so forth, for example:

`https://platform.example.com/sap/opu/odata/sap/{{authfield1}}/?$format=json`

***

## Access Using a Connector

In the **Access Using a Connector** section, select **Yes** to enable access for AI Agent using the Kore.ai Connector agent. If your domain has no active Kore.ai Connectors defined, a warning message is displayed to contact the Admin Console system administrator.

Click **Save** to save the authorization settings and close the **New Authorization Mechanism** dialog.

***

## Testing the Authorization

After saving the authentication, test your authorization definition by clicking **Test** from the Authorization Profile page.

<img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img5.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=6a09b5773961b3ff0aff89164143f702" alt="Testing the auth" width="1489" height="696" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img5.png" />

When you click **Test**, the **Test Authorization** dialog is displayed.

<img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img6.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=484c3f758b74b07f2306576241fbacb8" alt="Test Authorization dialog" width="499" height="849" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img6.png" />

**To configure the Test Authorization - API Key:**

1. In the **Auth Check URL** field, verify or enter the URL to test the authentication configuration.
2. If your assistant uses subdomains, the **Tenancy** field is displayed — specify the tenant.
3. Enter the API key for the application in the **API Key** field.
4. Select the content type expected for the URL in the **Content-Type** field.
5. For testing the URL, the **Method** field is read-only and set to **GET**.
6. Click **Test** to begin the authorization test.

When validation completes, the **Test Authorization** dialog closes and the result — either success or failure — is displayed. If the authorization fails, the Auth Test Failed message is displayed along with the **Headers** and **Response** tabs.

<img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img7.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=16b15aeafad6e9832b125a59ab2d4455" alt="Auth test failed" width="595" height="473" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/api-key-img7.png" />

***
