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

# API keys

> Create and manage API keys to authenticate requests

API keys authenticate requests to model endpoints. You can assign access scopes
based on what a key needs to do and set an expiration date.

## Choose an API key type

You can create the following types of API keys:

* **Personal keys** are associated with individual users. You can view and copy
  the key value only during key creation.

* **Organization keys** are owned by a service account and are intended for
  automations. Anyone in the organization can view and copy the
  key value at any time.

To view other users' personal keys, go to the **Member keys** section of the
[API keys](https://console.modular.com/api_tokens) page. You can view
information about these keys, but you can't view their values.

## Choose access scopes

Grant each API key only the access that it needs. You can select one or both of
the following scopes:

* **Model access** grants access to the
  [inference APIs](/api/inference/create-chat-completion), allowing
  the key to run inference on any model available to your organization.
* **Developer access** grants access to the deployment and management APIs,
  allowing the key to access organization resources and manage infrastructure.
  Some operations such as running benchmarks also require your organization to
  have the corresponding features enabled.

An API key's permissions are also limited by the
[roles and permissions](/administration/roles-permissions) of its owner. A
personal key inherits the permissions of the user who owns it. Service account
keys always use the Developer role.

## Create an API key

To create an API key:

1. Open the [API keys](https://console.modular.com/api_tokens) page.

2. Next to **Personal keys** or **Organization keys**, click **+ Create**.

3. Enter the following information:

   * **Name**: Enter a short, descriptive name for the key.
   * **Description**: Optionally, describe how the key is used.
   * **Model access**: Enable this option for keys that call inference
     endpoints.
   * **Developer access**: Enable this option for keys that manage
     infrastructure programmatically.
   * **Expires**: Select when the key expires. You can't use the key after this
     date.

4. Click **Submit**.

5. If you created a personal key, copy the API key and store it in a secure
   location. You can't access the value of a personal key after you close the
   dialog.

The API key has the following format:

```text theme={null}
sk-mod-<organization>-<random>
```

Store the key securely, such as in a secret manager.

<Note>
  You can't regenerate an API key. To replace a key while preserving its name,
  delete the existing key and create a new key with the same name.
</Note>
